Я хочу загрузить изображение в кодировке base64 и текст на мой веб-сервер, используя Volley StringRequest.
Когда я непосредственно пытаюсь отправить строку 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 в качестве параметра сжатия?