Articles of okhttp3

Создание зависимости от градиента – удаление доступа к своим зависимостям

Неизданная андроидная библиотека, над которой я работаю, имеет в ней стороннюю сетевую библиотеку – OkHttp в этом случае. Проекты, которые используют эту библиотеку в качестве зависимости, теперь также могут создавать объекты с этой сетевой библиотекой. Могу ли я ограничить или отключить доступ к сетевой библиотеке, содержащейся в моей библиотеке?

У OkHttpClient максимальное количество попыток

Я устанавливаю повторную попытку подключения для OkHttpClient. client = new OkHttpClient(); client.setRetryOnConnectionFailure(true); Я хотел бы знать, сколько раз он будет продолжать пытаться. Глядя на исходный код, я не видел никакого максимального предела. Как настроить клиент для остановки попытки после нескольких попыток?

Код состояния ответа OkHttp в методе onFailure

Когда я пользователь OkHttp Library с асинхронным способом: call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { e.printStackTrace(); } @Override public void onResponse(Call call, Response response) throws IOException { } }); В методе onFailure , как я получаю код статуса ответа, различать различные ошибки. Например, ошибка сети или ошибка сервера?

"Return response.body (). String ()" пуст с okhttp3

Я создал следующий класс: package com.inverseo.marc.t372lematin; import java.io.IOException; import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; public class PostJSON { public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8"); OkHttpClient client = new OkHttpClient(); public String postJSONRequest(String url, String json) throws IOException { RequestBody body = RequestBody.create(JSON, json); Request request = new Request.Builder() .url(url) […]

Запретить OkHttp / Retrofit от обхода прокси

Когда OkHttp пытается прокси, и этот маршрут терпит неудачу один раз, каждый запрос после этого запроса полностью обходит прокси-сервер Android. Поэтому отлаживать его можно с помощью Чарльза. В настоящее время у меня есть код ниже, но он настроен только для сборки Debug. Он отлично работает, но это взлом, и мы хотим опубликовать его для всех […]

Получил эту ошибку с помощью retrofit2 & OkHttp3. Не удалось разрешить хост «<имя-хоста>»: нет адреса, связанного с именем хоста

Я использую retrofit 2 и OkHttp3 для запроса данных с сервера. Я просто добавил автономный кеш-код, но он не работает должным образом. Я получил сообщение об ошибке «Не удалось разрешить хост» <>: «Нет адреса, связанного с именем хоста». Это происходит, когда он пытается получить извлеченные данные из кеша (при отсутствии подключения к Интернету). Ниже приведен […]

Несколько новых продуктов Proguard вызывают сервисы Google Play v10.2.6 до v11.0.0 в проекте Multidex

Я обновил наше приложение, чтобы использовать последний Android Firebase SDK v11.0.0 ( https://firebase.google.com/support/release-notes/android#20170607 ), и из-за неожиданного появления новых ошибок proguard FYI Все хорошо работало с proguard. До: compile 'com.google.firebase:firebase-messaging:10.2.6' compile 'com.google.android.gms:play-services-vision:10.2.6' После: compile 'com.google.firebase:firebase-messaging:11.0.0' compile 'com.google.android.gms:play-services-vision:11.0.0' Проблема в том, что это, кажется, не просто новая пропущенная запись proguard, но кажется, что она сломала все […]

Как отправить данные с помощью библиотеки okhttp с типом контента x-www-form-urlencoded?

Я использовал этот метод https://stackoverflow.com/a/31744565/5829906, но не отправлял данные. Вот мой код OkHttpClient client = new OkHttpClient(); RequestBody requestBody = new MultipartBuilder() .type(MultipartBuilder.FORM) .addFormDataPart("rating", "5").addFormDataPart("comment", "Awesome") .build(); Request request = new Request.Builder() .url(url) .post(requestBody) .build(); try { Response response = client.newCall(request).execute(); String responseString = response.body().string(); response.body().close(); }catch (Exception e) { e.printStackTrace(); } Я попробовал DefaultHttpClient, […]

Загрузка изображения с использованием okHttp

Я хочу загрузить изображение, используя okhttp, но я не могу найти MultipartBuilder для Post Image. Что я могу использовать вместо этого. Вот мой код public static JSONObject uploadImage(File file) { try { final MediaType MEDIA_TYPE_PNG = MediaType.parse("image/png"); RequestBody req = new MultipartBuilder().setType(MultipartBody.FORM).addFormDataPart("userid", "8457851245") .addFormDataPart("userfile","profile.png", RequestBody.create(MEDIA_TYPE_PNG, file)).build(); Request request = new Request.Builder() .url("url") .post(req) .build(); OkHttpClient […]

Как получить адрес перенаправления OkHttp3?

Есть ли способ получить окончательный URL-адрес запроса? Я знаю, что я могу отключить перенаправления и сам, но есть ли способ получить текущий URL-адрес, который я загружаю? Например, если я попросил a.com и получил перенаправление на b.com, есть ли способ получить имя URL-адреса url?