排球多部分请求的请求列表

时间:2017-07-09 19:22:52

标签: android json android-volley

我使用VolleyMultipartRequest代码将图像和doc文件上传到我的服务器。但我提到了一个问题:我需要向我的服务器发送一个图像和文档列表。我的意思是,例如我选择2个图像和3个doc文件,按“发送”按钮我只需要发送一个请求。

我的Java代码发送部分和服务器的JSON参数:

//---------------------Map<String, String>
                params.put("orientation", "P");
                params.put("margin", "5");
                params.put("type", "image");
                params.put("copies", "1");
                params.put("width", "" + 150);
                params.put("height", "" + 150);
//-----------------------Map<String, DataPart>
                params.put("file", new DataPart("image1.jpg", AppHelper.getFileDataFromDrawable(getBaseContext(), new BitmapDrawable(getResources(), bitmapList.get(0))), "image/jpeg"));

和我的Json

file: File
type: "image"

1 个答案:

答案 0 :(得分:0)

您可以使用此自定义请求,覆盖getByteData方法并将您的内容作为字节发送。检查此示例,它通过覆盖getByteData在一个请求中附加两个不同的文件:

https://gist.github.com/anggadarkprince/a7c536da091f4b26bb4abf2f92926594#file-volleymultipartrequest-java

@Override
protected Map<String, DataPart> getByteData() {
    Map<String, DataPart> params = new HashMap<>();
    // file name could found file base or direct access from real path
    // for now just get bitmap data from ImageView
    params.put("avatar", new DataPart("file_avatar.jpg", AppHelper.getFileDataFromDrawable(getBaseContext(), mAvatarImage.getDrawable()), "image/jpeg"));
    params.put("cover", new DataPart("file_cover.jpg", AppHelper.getFileDataFromDrawable(getBaseContext(), mCoverImage.getDrawable()), "image/jpeg"));

    return params;
}