我在android中使用volley庫來調用我們的服務器時嘗試發送base64編碼圖像到服務器請求失敗,但是當刪除編碼的字符串請求成功沒有任何問題。 我使用下面的代碼編碼我的形象
如何將base64字符串發送到服務器使用volley
public static String imgToBase64(Bitmap bitmap) {
ByteArrayOutputStream out = null;
try {
out = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, out);
out.flush();
out.close();
byte[] imgBytes = out.toByteArray();
return Base64.encodeToString(imgBytes, Base64.DEFAULT);
} catch (Exception e) {
return null;
} finally {
try {
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
和使用凌空具有以下
public void sendDataToServer(final ApiResponse.Listener<JSONObject> listener, final ApiResponse.ErrorListener errorListener, String image) {
String url = String.format(ASK, image);
url = URLEncoder.encode(url);
JsonRequest sendRequest = new JsonRequest(Request.Method.POST, url,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
listener.onResponse(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (error != null) {
if (error.networkResponse != null) {
errorListener.onErrorResponse(error.networkResponse.statusCode, null);
} else {
errorListener.onErrorResponse(500, null);
}
}
}
});
RequestPipeline.getInstance(mContext).addToRequestQueue(sendRequest);
}
提供更多詳情。請求失敗的原因是什麼?錯誤的服務器響應?網絡問題?還有別的嗎?還有什麼是'JsonEmptyResponseRequest'? – SergGr