java.net.SocketTimeoutException:读取超时问题

java.net.SocketTimeoutException:读取超时问题,java,android,Java,Android,当我尝试连接到web服务时,为什么会出现此异常。我在stack overflow中搜索相关错误,但实际上无法找出原因?我假设“com.Webservice.downloadFileAddPassword”是您创建的包,您的web服务是Webservice.java。如果这是真的,那么您在Webservice.java的第192行有一个错误。这并不是说您可能没有访问web服务,而是web服务中的操作时间或进程超时了。您是否对web服务进行了单元测试 我在stacktrace中读到,您有一个正在调用

当我尝试连接到
web服务时,为什么会出现此
异常
。我在stack overflow中搜索相关错误,但实际上无法找出原因?

我假设“com.Webservice.downloadFileAddPassword”是您创建的包,您的web服务是Webservice.java。如果这是真的,那么您在Webservice.java的第192行有一个错误。这并不是说您可能没有访问web服务,而是web服务中的操作时间或进程超时了。您是否对web服务进行了单元测试

我在stacktrace中读到,您有一个正在调用的InputStream,当尝试连接或从源读取时,它超时的时间太长

所以基本上:webservice使用的输入流太长了。我想我知道的还不够多,不能只看一下你的stacktrace就能提供更多的信息

堆栈跟踪作为更可读的格式:

07-18 18:57:24.687: W/System.err(7031): java.net.SocketTimeoutException: Read timed out
07-18 18:57:24.773: W/System.err(7031):     at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_read(NativeMethod)
07-18 18:57:24.773: W/System.err(7031):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:675)
07-18 18:57:24.773: W/System.err(7031):     at libcore.io.Streams.readSingleByte(Streams.java:41)
07-18 18:57:24.773: W/System.err(7031):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:659)
07-18 18:57:24.773: W/System.err(7031):     at libcore.io.Streams.readAsciiLine(Streams.java:201)
07-18 18:57:24.773: W/System.err(7031):     at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:560)
07-18 18:57:24.773: W/System.err(7031):     at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:813)
07-18 18:57:24.773: W/System.err(7031):     at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274)
07-18 18:57:24.773: W/System.err(7031):     at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168)
07-18 18:57:24.773: W/System.err(7031):     at libcore.net.http.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:271)
07-18 18:57:24.773: W/System.err(7031):     at com.Webservice.downloadFileAddPassword(Webservice.java:192)
07-18 18:57:24.777: W/System.err(7031):     at com.patientcontext.DocumentViewerActivity2$DocumentsShowAsyncTask.doInBackground(DocumentViewerActivity2.java:219)
07-18 18:57:24.777: W/System.err(7031):     at com.patientcontext.DocumentViewerActivity2$DocumentsShowAsyncTask.doInBackground(DocumentViewerActivity2.java:1)
07-18 18:57:24.777: W/System.err(7031):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
07-18 18:57:24.777: W/System.err(7031):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
07-18 18:57:24.777: W/System.err(7031):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-18 18:57:24.777: W/System.err(7031):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
07-18 18:57:24.781: W/System.err(7031):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
07-18 18:57:24.785: W/System.err(7031):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
07-18 18:57:24.785: W/System.err(7031):     at java.lang.Thread.run(Thread.java:856)

AsyncTasks最好用于短操作(最多几秒钟),而不是使用asyntask
。为什么不使用服务或下载管理器?关于您的异常,让我们看看人们怎么说:)不,SSL握手超时了。查看堆栈跟踪。
07-18 18:57:24.687: W/System.err(7031): java.net.SocketTimeoutException: Read timed out 
07-18 18:57:24.773: W/System.err(7031): at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_read(Native Method) 
07-18 18:57:24.773: W/System.err(7031): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:675) 
07-18 18:57:24.773: W/System.err(7031): at libcore.io.Streams.readSingleByte(Streams.java:41) 
07-18 18:57:24.773: W/System.err(7031): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:659) 
07-18 18:57:24.773: W/System.err(7031): at libcore.io.Streams.readAsciiLine(Streams.java:201) 
07-18 18:57:24.773: W/System.err(7031): at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:560) 
07-18 18:57:24.773: W/System.err(7031): at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:813) 
07-18 18:57:24.773: W/System.err(7031): at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274) 
07-18 18:57:24.773: W/System.err(7031): at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168) 
07-18 18:57:24.773: W/System.err(7031): at libcore.net.http.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:271) 
07-18 18:57:24.773: W/System.err(7031): at com.Webservice.downloadFileAddPassword(Webservice.java:192) 
07-18 18:57:24.777: W/System.err(7031): at com.patientcontext.DocumentViewerActivity2$DocumentsShowAsyncTask.doInBackground(DocumentViewerActivity2.java:219) 
07-18 18:57:24.777: W/System.err(7031): at com.patientcontext.DocumentViewerActivity2$DocumentsShowAsyncTask.doInBackground(DocumentViewerActivity2.java:1) 
07-18 18:57:24.777: W/System.err(7031): at android.os.AsyncTask$2.call(AsyncTask.java:287) 
07-18 18:57:24.777: W/System.err(7031): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
07-18 18:57:24.777: W/System.err(7031): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
07-18 18:57:24.777: W/System.err(7031): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
07-18 18:57:24.781: W/System.err(7031): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
07-18 18:57:24.785: W/System.err(7031): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
07-18 18:57:24.785: W/System.err(7031): at java.lang.Thread.run(Thread.java:856)