Загрузка нескольких изображений с помощью волейбола?

Я прошел через много сообщений в SO и других случаях. Но я не мог получить последнее официальное или другое сообщение, которое не содержит устаревшего кода для загрузки нескольких изображений с помощью volley.I узнал Apache HTTP Client Удаление и связанные с ним в новом андроиде M и предпочли использовать ниже.

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

Итак, может ли кто-нибудь помочь мне сделать многократную загрузку изображений с новым обновленным устаревшим менее классным классом?

Вы можете использовать последнюю версию volley отсюда . Это неофициальное зеркало с небольшим исправлением ошибок, и исходный код будет периодически синхронизироваться с официальным репозиторием.

Для Gradle

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

Или вы можете скачать скомпилированную версию здесь

Теперь вы можете использовать приведенный ниже класс для получения многостраничного запроса с помощью volley с помощью MultipartEntityBuilder в 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); 

Либо вы можете использовать httpmime-4.3.5.jar и httpcore-4.3.2.jar для получения доступа к MultipartEntityBuilder и другим методам, которые используются для создания запроса или добавления следующего в ваш град, если ваш таргетинг API 23 и выше.

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

В любом случае я использую упомянутые банки, и это работает как шарм в 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 , там вы найдете, что я настроил некоторые классы, такие как HttpHeaderParser , BasicNetwork , HurlStack , HurlStack , Volley … Для HurlStack запроса используйте файл 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' } 

Другое хорошее альтернативное решение, IMHO, использует OkHttp, у меня также был пример рабочего кода в GitHub , пожалуйста, посмотрите.

Надеюсь, поможет!