Intereting Posts
Сохранить изображение в галерее Crashlytics Gradle Plugin – дополнительные свойства не изменяются Службы Google Play для Android. Клиент местоположения не обновляет местоположение, если Wi-Fi отключен Методы WebView не вызываются в android Ошибка XML-ящика навигации C #: ModernHttpClient, вы ссылаетесь на портативную версию вашего приложения – вам нужно ссылаться на версию платформы (iOS / Android) Как я могу запустить один тест с помощью android Конкретные переключатели – самый простой способ установить разные стили для кнопок «первая / последняя» Преобразовать JKS-файл в BKS или создать файл BKS Образец HelloWebView: java.lang.SecurityException: отказ в разрешении Почему какой-то Android-код работает на предыдущем уровне API, чем он должен? Ошибка Eclipse «Сервер ADB не ACK, не удалось запустить демон» Android Studio – невозможно открыть файл PNG Как обнаружить ходьбу с Android-акселерометром AdView замедляет работу всего приложения, возможную причину

Retrofit SocketTimeOutException при отправке многопартийных или JSON-данных в android

Облицовка проблемы при отправке данных Mutipart или JSON с помощью модифицированной библиотеки lib

Интерфейс дооснащения

@Multipart @POST("/api/v1/protected/updateprofile") void uploadPhoto(@Part("name") String name, @Part("image") TypedFile file, Callback<ApiResponseModel> callback); 

Код адаптера

 private RestApi restApi; RestAdapter restAdapter = new RestAdapter.Builder().setClient(new OkClient(getClient())).setConverter(new GsonConverter(gson)).setRequestInterceptor(interceptor).setLogLevel(RestAdapter.LogLevel.FULL).setEndpoint(Config.baseUrl).build(); restApi = restAdapter.create(RestApi.class); 

Журнал ошибок Создан после отправки запроса JSON

 D/Retrofit﹕ ---- ERROR http://www.example.com/api/v1/protected/addfriends 11-05 11:22:18.594 13384-15325/com.veddislabs.plicx D/Retrofit﹕ java.io.InterruptedIOException: timeout at okio.AsyncTimeout.exit(AsyncTimeout.java:258) at okio.AsyncTimeout$2.read(AsyncTimeout.java:215) at okio.RealBufferedSource.indexOf(RealBufferedSource.java:206) at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:153) at com.squareup.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:189) at com.squareup.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:101) at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:676) at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:426) at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:371) at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:466) at retrofit.client.UrlConnectionClient.readResponse(UrlConnectionClient.java:73) at retrofit.client.UrlConnectionClient.execute(UrlConnectionClient.java:38) at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:321) at retrofit.RestAdapter$RestHandler.access$100(RestAdapter.java:220) at retrofit.RestAdapter$RestHandler$2.obtainResponse(RestAdapter.java:278) at retrofit.CallbackRunnable.run(CallbackRunnable.java:42) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) at retrofit.Platform$Android$2$1.run(Platform.java:142) at java.lang.Thread.run(Thread.java:856) Caused by: java.net.SocketException: Socket closed at libcore.io.Posix.recvfromBytes(Native Method) at libcore.io.Posix.recvfrom(Posix.java:136) at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:164) at libcore.io.IoBridge.recvfrom(IoBridge.java:513) at java.net.PlainSocketImpl.read(PlainSocketImpl.java:488) at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46) at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:240) at okio.Okio$2.read(Okio.java:136) at okio.AsyncTimeout$2.read(AsyncTimeout.java:211)            at okio.RealBufferedSource.indexOf(RealBufferedSource.java:206)            at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:153)            at com.squareup.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:189)            at com.squareup.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:101)            at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:676)            at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:426)            at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:371)            at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:466)            at retrofit.client.UrlConnectionClient.readResponse(UrlConnectionClient.java:73)            at retrofit.client.UrlConnectionClient.execute(UrlConnectionClient.java:38)            at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:321)            at retrofit.RestAdapter$RestHandler.access$100(RestAdapter.java:220)            at retrofit.RestAdapter$RestHandler$2.obtainResponse(RestAdapter.java:278)            at retrofit.CallbackRunnable.run(CallbackRunnable.java:42)            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)            at retrofit.Platform$Android$2$1.run(Platform.java:142)            at java.lang.Thread.run(Thread.java:856) 

Я попытался увеличить время ожидания запроса в Адаптере запроса

  private OkHttpClient getClient() { OkHttpClient client = new OkHttpClient(); client.setConnectTimeout(30, TimeUnit.SECONDS); client.setReadTimeout(30, TimeUnit.SECONDS); return client; } 

У меня есть эта ошибка несколько дней назад, и я обнаружил, что ваше решение правильно, но добавить больше времени

 private OkHttpClient getClient() { OkHttpClient client = new OkHttpClient(); client.setConnectTimeout(5, TimeUnit.MINUTES); client.setReadTimeout(5, TimeUnit.MINUTES); return client; } 

Для OkHttp3

  private OkHttpClient getClient() { OkHttpClient client = new OkHttpClient.Builder() .connectTimeout(5, TimeUnit.MINUTES) .readTimeout(5, TimeUnit.MINUTES) .build(); return client; } 

Для меня проблема была на стороне сервера.

Мне пришлось отключить tcp_timestamp , изменив конфигурацию sysctl на сервере API. Кроме того, если у вас есть другие службы, работающие над TCP на одном компьютере, то есть Redis и т. Д., Вы должны следить за тем, как это влияет на них.

Нашел это из вопроса о Гитубе.