使用Volley Android在Multipart消息中下载图像?

时间:2018-07-09 15:50:41

标签: android android-volley multipartform-data

我正在尝试通过单个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;
            }
        };

0 个答案:

没有答案