使用loopj AsyncHttpClient获取SocketTimeoutExceptions。

问题描述 投票:0回答:1
12-19 13:28:49.902 22731-23091/com.aadi.edusuit W/System.err: java.net.SocketTimeoutException
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at java.net.PlainSocketImpl.read(PlainSocketImpl.java:484)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at java.net.PlainSocketImpl.-wrap0(PlainSocketImpl.java)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:237)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at cz.msebera.android.httpclient.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:160)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at cz.msebera.android.httpclient.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:84)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at cz.msebera.android.httpclient.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:273)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at cz.msebera.android.httpclient.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at cz.msebera.android.httpclient.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at cz.msebera.android.httpclient.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:260)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at cz.msebera.android.httpclient.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:283)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at cz.msebera.android.httpclient.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:251)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at cz.msebera.android.httpclient.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:223)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at cz.msebera.android.httpclient.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:271)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at cz.msebera.android.httpclient.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at cz.msebera.android.httpclient.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:685)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at cz.msebera.android.httpclient.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:487)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at cz.msebera.android.httpclient.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:860)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at cz.msebera.android.httpclient.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:146)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:177)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:106)
12-19 13:28:49.903 22731-23091/com.aadi.edusuit W/System.err:     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
12-19 13:28:49.904 22731-23091/com.aadi.edusuit W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
12-19 13:28:49.904 22731-23091/com.aadi.edusuit W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
12-19 13:28:49.904 22731-23091/com.aadi.edusuit W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
12-19 13:28:49.904 22731-23091/com.aadi.edusuit W/System.err:     at java.lang.Thread.run(Thread.java:818)

我实现了以下代码: -

final int DEFAULT_TIMEOUT = 20 * 1000;
AsyncHttpClient aClient = new AsyncHttpClient();
aClient.setTimeout(DEFAULT_TIMEOUT);
//... continue as normal

但是上面的代码只在一个会话中工作一次;如果我在同一个会话中发出另一个请求,我会再次获得Socket超时异常。

android asynchttpclient
1个回答
0
投票

增加你的超时时间可能是互联网太慢建立连接,即试试这个

AsyncHttpClient aClient = new AsyncHttpClient();
aClient.setTimeout(70000);
© www.soinside.com 2019 - 2024. All rights reserved.