用凌空上传多个图像?

Ste*_*lla 21 java android multipart android-volley

我在SO和其他内容中也经历了很多帖子.但我无法获得任何最新的官方或其他帖子,其中不包含任何弃用的代码,用于使用volley上传多个图像.我开始了解Apache HTTP Client删除和相关的新的Android M和首选使用下面的代替.

android {
    useLibrary 'org.apache.http.legacy'
}  
Run Code Online (Sandbox Code Playgroud)

那么,任何人都可以通过新的更新已弃用的减少排球类来帮助我进行多个图像上传吗?

Ano*_*p M 4

您可以从这里使用最新版本的 volley 。它是一个非官方镜像,修复了一些小错误,源代码将定期与官方 volley 存储库同步。

对于 Gradle

compile 'com.mcxiaoke.volley:library:1.0.19' 
Run Code Online (Sandbox Code Playgroud)

或者你可以从这里下载编译版本

MultipartEntityBuilder现在,您可以使用下面的附加类在in的帮助下使用 volley 发出多部分请求,org.apache.http.entity.mime而无需任何已弃用的代码。

CustomMultipartRequest.java

使用示例

//Auth header
Map<String, String> mHeaderPart= new HashMap<>();
mHeaderPart.put("Content-type", "multipart/form-data;");
mHeaderPart.put("access_token", accessToken);

//File part
Map<String, File> mFilePartData= new HashMap<>();
mFilePartData.put("file", new File(mFilePath));
mFilePartData.put("file", new File(mFilePath));

//String part
Map<String, String> mStringPart= new HashMap<>();
mStringPart.put("profile_id","1");
mStringPart.put("imageType", "ProfileImage");

CustomMultipartRequest mCustomRequest = new CustomMultipartRequest(method, mContext, url, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject jsonObject) {
                listener.onResponse(jsonObject);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                listener.onErrorResponse(volleyError);
            }
        }, mFilePartData, mStringPart, mHeaderPart);
Run Code Online (Sandbox Code Playgroud)

您可以使用httpmime-4.3.5.jarhttpcore-4.3.2.jar来访问MultipartEntityBuilder和 用于发出请求的其他方法,或者如果您的目标 API 23 及更高版本,则在您的 gradle 中添加以下内容。

android {
    useLibrary 'org.apache.http.legacy'
}  
Run Code Online (Sandbox Code Playgroud)

不管怎样,我使用上述 jar 的方式,它在 Android M 中也很有魅力。

更新

请注意,com.mcxiaoke.volley:library:1.0.19已弃用且不再维护,请使用jCenter.

compile 'com.android.volley:volley:1.0.0'
Run Code Online (Sandbox Code Playgroud)