上传多个图像与凌空?

我已经经历了很多post在SO和其他tuts以及但是我不能得到任何最新的官方或其他职位,不包含任何不赞成的代码上传使用volley.I多个图像的代码我来了解Apache HTTP客户端删除和相关的新的Android M和首选使用下面的代替。

android { useLibrary 'org.apache.http.legacy' } 

所以,任何人可以帮助我做出多个图像上传与新的更新弃用less排球?

Solutions Collecting From Web of "上传多个图像与凌空?"

你可以从这里使用最新版本的抽象。它是一个非官方的镜像,有一些小错误修复,源代码将定期与官方仓库同步。

为Gradle

 compile 'com.mcxiaoke.volley:library:1.0.19' 

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

现在你可以在org.apache.http.entity.mimeMultipartEntityBuilder的帮助下,使用下面的附加类来创build多部分请求,而不需要使用任何废弃的代码。

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); 

您可以使用httpmime-4.3.5.jarhttpcore-4.3.2.jar获取MultipartEntityBuilder访问权限以及用于进行请求的其他方法,也可以在您的Gradle中添加以下内容(如果您的定位API为23及以上)。

 android { useLibrary 'org.apache.http.legacy' } 

任何方式我使用提到的jar子,它的作品就像在Android M的魅力也。

更新

请注意, com.mcxiaoke.volley:library:1.0.19弃用而不再维护,请使用jCenter官方版本。

 compile 'com.android.volley:volley:1.0.0' 

此时,Volley库(Google和mcxiaoke的一个)仍然在其多个类中使用Apache库。 如果你仍然想使用Volley 而没有任何Apache的依赖 ,你需要把它作为你的项目中的一个模块,并修改它的源代码文件。

你可以参考我的GitHub示例代码 ,在那里你会发现我已经定制了一些类,如NetworkResponseHttpHeaderParserBasicNetworkHurlStackVolley …对于多部分请求,请使用MultipartActivity.java文件。

你会看到build.gradle文件的内容:

 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.example.volleynoapache" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' } 

另一个好的替代解决scheme,恕我直言,使用OkHttp,我也有一个在GitHub工作示例代码,请看看。

希望能帮助到你!