我正在尝试通过单个rest API调用来发送多个图像,并且我正在使用“ Volley”。我可以使用凌空下载单个图像,但API调用会以多部分消息的形式发送多个图像。我找不到解决方法。
我已经尝试了Volley工具箱类“ ImageRequest”,但是看起来它可以用于下载单个文件。然后我尝试了“ StringRequest”,但是我陷入了将字符串转换为字节然后进行解析以找到多个图像的麻烦。我不敢相信将volley中的多部分消息集成到android中会如此困难。还是我走错了方向,请指导?
StringRequest jsonObjRequest = new StringRequest(Request.Method.POST,
URL_API,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.i(TAG, response);
pDialog.dismiss();
Toast.makeText(context, "Success", Toast.LENGTH_SHORT).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("volley", "Error: " + error.getMessage());
error.printStackTrace();
Log.e(TAG, "Success");
Toast.makeText(context, "Error", Toast.LENGTH_SHORT).show();
pDialog.dismiss();
}
}) {
@Override
public String getBodyContentType() {
return "application/x-www-form-urlencoded; charset=UTF-8";
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String ,String> headers=new HashMap<>();
headers.put("authorization", "bearer "+ token);
return headers;
}
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("UGUID", UGUID);
params.put("INAME["+0+"]", "b6ecbcb4a6a64128ba56ec01cb7ffe17.png");
params.put("INAME["+1+"]", "943caf91b4e44313a94a308001c230c5.jpg");
return params;
}
};