在改造1.9上上传图像超过200kb时获得套接字超时

时间:2016-01-03 17:03:37

标签: android retrofit

尝试上传大小超过200kb的图片时,我收到套接字超时。当图像小于200 kB时,我的代码工作正常。

以下是我正在尝试的代码

        final OkHttpClient okHttpClient = new OkHttpClient();
    okHttpClient.setRetryOnConnectionFailure(true);
    okHttpClient.setReadTimeout(60, TimeUnit.SECONDS);
    okHttpClient.setConnectTimeout(60, TimeUnit.SECONDS);

    RestAdapter restAdapter = new RestAdapter.Builder()
            .setLogLevel(RestAdapter.LogLevel.FULL)
            .setEndpoint(ConstantUrl.BASE_URL)
            .setClient(new OkClient(okHttpClient))
            .build();

    apiService = restAdapter.create(RestApi.class);

这是我得到的回应

java.net.SocketTimeoutException: timeout
                                                   at okio.Okio$3.newTimeoutException(Okio.java:207)
                                                   at okio.AsyncTimeout.exit(AsyncTimeout.java:261)
                                                   at okio.AsyncTimeout$1.write(AsyncTimeout.java:158)
                                                   at okio.RealBufferedSink.emitCompleteSegments(RealBufferedSink.java:176)
                                                   at okio.RealBufferedSink.write(RealBufferedSink.java:46)
                                                   at com.squareup.okhttp.internal.http.HttpConnection$FixedLengthSink.write(HttpConnection.java:302)
                                                   at okio.RealBufferedSink.emitCompleteSegments(RealBufferedSink.java:176)
                                                   at okio.RealBufferedSink$1.write(RealBufferedSink.java:198)
                                                   at java.io.OutputStream.write(OutputStream.java:82)
                                                   at retrofit.mime.TypedByteArray.writeTo(TypedByteArray.java:66)
                                                   at retrofit.client.OkClient$1.writeTo(OkClient.java:88)
                                                   at com.squareup.okhttp.internal.http.HttpEngine$NetworkInterceptorChain.proceed(HttpEngine.java:890)
                                                   at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:748)
                                                   at com.squareup.okhttp.Call.getResponse(Call.java:277)
                                                   at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:234)
                                                   at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:196)
                                                   at com.squareup.okhttp.Call.execute(Call.java:79)
                                                   at retrofit.client.OkClient.execute(OkClient.java:53)
                                                   at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:326)
                                                   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.sendtoBytes(Native Method)
                                                   at libcore.io.Posix.sendto(Posix.java:151)
                                                   at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:177)
                                                   at libcore.io.IoBridge.sendto(IoBridge.java:473)
                                                   at java.net.PlainSocketImpl.write(PlainSocketImpl.java:507)
                                                   at java.net.PlainSocketImpl.access$100(PlainSocketImpl.java:46)
                                                   at java.net.PlainSocketImpl$PlainSocketOutputStream.write(PlainSocketImpl.java:269)
                                                   at okio.Okio$1.write(Okio.java:80)
                                                   at okio.AsyncTimeout$1.write(AsyncTimeout.java:155)
                                                   at okio.RealBufferedSink.emitCompleteSegments(RealBufferedSink.java:176) 
                                                   at okio.RealBufferedSink.write(RealBufferedSink.java:46) 
                                                   at com.squareup.okhttp.internal.http.HttpConnection$FixedLengthSink.write(HttpConnection.java:302) 
                                                   at okio.RealBufferedSink.emitCompleteSegments(RealBufferedSink.java:176) 
                                                   at okio.RealBufferedSink$1.write(RealBufferedSink.java:198) 
                                                   at java.io.OutputStream.write(OutputStream.java:82) 
                                                   at retrofit.mime.TypedByteArray.writeTo(TypedByteArray.java:66) 
                                                   at retrofit.client.OkClient$1.writeTo(OkClient.java:88) 
                                                   at com.squareup.okhttp.internal.http.HttpEngine$NetworkInterceptorChain.proceed(HttpEngine.java:890) 
                                                   at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:748) 
                                                   at com.squareup.okhttp.Call.getResponse(Call.java:277) 
                                                   at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:234) 
                                                   at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:196) 
                                                   at com.squareup.okhttp.Call.execute(Call.java:79) 
                                                   at retrofit.client.OkClient.execute(OkClient.java:53) 
                                                   at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:326) 
                                                   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) 

01-03 22:29:38.506 3019-6439 / com.vkeel D / Retrofit:---- END ERROR

0 个答案:

没有答案