java - StringRequest 参数有大小限制吗?
问题描述
我想使用 Volley StringRequest 将 base64 编码图像和一些文本上传到我的网络服务器。
当我直接尝试发送 base64 字符串时,我得到“意外的响应代码 503”,但是当我压缩图像然后对其进行编码时,它工作得很好。问题是我不知道为什么在发送到服务器之前我必须压缩我的图像,我应该压缩多少,或者有没有其他方法可以在不压缩的情况下发送它。
base64Encode
我称之为完美工作的功能:
public String getStringImage(Bitmap bitmap){
ByteArrayOutputStream baos=new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG,50, baos);
byte [] b=baos.toByteArray();
String temp= Base64.encodeToString(b, Base64.DEFAULT);
return temp;
}
该base64Encode
功能不起作用/给出 503 错误:
public String getStringImage(Bitmap bitmap){
ByteArrayOutputStream baos=new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG,100, baos);
byte [] b=baos.toByteArray();
String temp= Base64.encodeToString(b, Base64.DEFAULT);
return temp;
}
我想让你考虑的线是:
bitmap.compress(Bitmap.CompressFormat.JPEG,50, baos);
当我将此压缩参数更改为 100 时,它的抛出错误。
我认为在发出 POST REQUEST 时可能存在大小限制,或者 Volley可能存在大小限制,StringRequest
或者可能根本没有大小限制。
<--- 更新 ---> 如果问题真的是大小限制,那么我如何计算压缩后的 JPEG 大小bitmap.compress (Bitmap.CompressFormat.JPEG, 50, baos)
而不实际压缩它?或者当我使用 15 作为压缩参数时,我如何知道我是否可以充分压缩我的图像?
解决方案
我也面临同样的问题。所以,这取决于服务器配置。他们为帖子设置了获取数据的限制
例如。
//最大尺寸
post_max_size 20M
因此,您需要与您的后端人员交谈或发送压缩图像。
推荐阅读
- laravel - 为收藏添加新价值。拉拉维尔
- c++ - Qt C++ - 如何保护文件
- python - Python 3 OpenCV 无法录制和保存视频
- flutter - 在flutter webview中隐藏Url引用
- html - Webkit 动画在 index.html 中不起作用
- discord - 角色反应 Discord Bot
- neo4j - Neo4j - 安装 neo4j-graph-algorithms 插件时出现问题
- phpseclib - aws ec2 Canonical Ubuntu 实例上的“无效 sFTP PacketSize”和“Expected SSH_FXP_VERSION”错误
- django - 访问 Django 中的自引用字段
- javascript - Javascript变量范围有问题