我在SO和其他内容中也经历了很多帖子。但我无法获得任何最新的官方或其他帖子,其中不包含任何已弃用的代码,用于使用volley上传多个图像。我来了解Apache HTTP客户端删除和新的Android M相关,而不是在下面使用。
android {
useLibrary 'org.apache.http.legacy'
}
那么,任何人都可以帮助我使用新的更新已弃用的少量排球类进行多个图像上传吗?
答案 0 :(得分:4)
你可以使用来自here的最新版本的凌空。它是一个非官方镜像,有一些小错误修复,源代码会定期与官方排球库同步。
for Gradle
compile 'com.mcxiaoke.volley:library:1.0.19'
或者您可以从here
下载已编译的版本现在,您可以使用以下附加类在[{1}}的{{1}}的帮助下使用排球进行多部分请求,而不使用任何弃用的代码。
示例用法
MultipartEntityBuilder
您可以使用org.apache.http.entity.mime
和//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);
来访问httpmime-4.3.5.jar
以及用于发出请求的其他方法,或者如果您的定位API 23和以上。
httpcore-4.3.2.jar
任何方式我都在使用上面提到的jar,它也像Android M中的魅力一样。
<强>更新强>
请注意,MultipartEntityBuilder
已弃用,不再维护,请使用android {
useLibrary 'org.apache.http.legacy'
}
的正式版。
com.mcxiaoke.volley:library:1.0.19
答案 1 :(得分:2)
此时,Volley库(Google和mcxiaoke的一个)仍然在其众多类中使用Apache的库。如果您仍想使用Volley 而没有任何Apache依赖,则需要将其用作项目中的模块并修改其源代码文件。
你可以参考my GitHub sample code ,你会发现我已经定制了一些类,例如NetworkResponse
,HttpHeaderParser
,BasicNetwork
,HurlStack
,{ {1}} ...对于多部分请求,请使用Volley
文件。
您会看到MultipartActivity.java
文件内容:
build.gradle
另一个好的替代方案,恕我直言,正在使用OkHttp,我在GitHub也有一个工作示例代码,请看看。
希望它有所帮助!