首页 > 代码库 > 使用ksoap2报java.io.EOFException异常问题解决方法

使用ksoap2报java.io.EOFException异常问题解决方法

使用ksoap2调用WebService数据读取正常,但一直报异常:

java.io.EOFException    at libcore.io.Streams.readAsciiLine(Streams.java:203)    at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:560)    at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:813)    at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274)    at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:486)    at org.ksoap2.transport.ServiceConnectionSE.getResponseCode(ServiceConnectionSE.java:103)    at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:197)    at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:118)    at .utils.Webservices.callinternet(Webservices.java:125)    at .utils.Webservices.getResponse(Webservices.java:73)    at .utils.Webservices.getResponse(Webservices.java:79)    at .utils.Webservices.getResponse(Webservices.java:79)    at .utils.AsynTask.doInBackground(AsynTask.java:61)    at .utils.AsynTask.doInBackground(AsynTask.java:1)    at android.os.AsyncTask$2.call(AsyncTask.java:287)    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)    at java.util.concurrent.FutureTask.run(FutureTask.java:137)    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)    at java.lang.Thread.run(Thread.java:856)

解决方法1
ArrayList<HeaderProperty> headerPropertyArrayList = new ArrayList<HeaderProperty>();headerPropertyArrayList.add(new HeaderProperty("Connection", "close"));httpSE.call(SOAP_ACTION, envelope, headerPropertyArrayList);

 加上红色部分代码就解决了。

 

解决方法2
使用 ksoap2-android-assembly-2.6.4-jar-with-dependencies.jar这个版本的ksoap2的包不会出现这样的问题。

使用ksoap2报java.io.EOFException异常问题解决方法