360引起的Soap的java.io.EOFException错误
昨天,我们的后视镜终端不能对讲,我们定位了很长时间,从服务接口到终端程序,整了一整天,发现是360的事。
具体技术问题:C#.net写的WebService接口。Windows终端访问没有问题,而Andriod终端访问出现以下错误。
AXLib.Utility.RuntimeExceptionEx: java.io.EOFException-->java.io.EOFException ----------------- java.lang.Thread.run:856 com.cityctrl.android.controller.act.CoreActivity$84.run:6060 com.cityctrl.android.controller.service.TalkService.reEnterRepeat:352 com.cityctrl.android.controller.service.TalkService.connectInternet:112 com.cjzx.androidsdk.SDKInterface.Start:211 com.cjzx.androidsdk.Net.WSInterface.Test:44 com.cjzx.androidsdk.Net.WebServiceInterface.Test:79 com.cjzx.androidsdk.Net.WebServiceInterface.Call:54 com.cjzx.androidsdk.Net.WebServiceInterface.Call:68 java.io.EOFException-->null ----------------- java.lang.Thread.run:856 com.cityctrl.android.controller.act.CoreActivity$84.run:6060 com.cityctrl.android.controller.service.TalkService.reEnterRepeat:352 com.cityctrl.android.controller.service.TalkService.connectInternet:112 com.cjzx.androidsdk.SDKInterface.Start:211 com.cjzx.androidsdk.Net.WSInterface.Test:44 com.cjzx.androidsdk.Net.WebServiceInterface.Test:79 com.cjzx.androidsdk.Net.WebServiceInterface.Call:54 com.cjzx.androidsdk.Net.WebServiceInterface.Call:63 org.ksoap2.transport.HttpTransportSE.call:77 com.cjzx.androidsdk.Net.ServiceConnectionSE.openInputStream:49 libcore.net.http.HttpURLConnectionImpl.getInputStream:168 libcore.net.http.HttpURLConnectionImpl.getResponse:274 libcore.net.http.HttpEngine.readResponse:784 libcore.net.http.HttpEngine.readResponseHeaders:544 libcore.io.Streams.readAsciiLine:203
AXLib.Utility.RuntimeExceptionEx: java.io.IOException: unexpected end of stream on Connection{125.208.1.201:8080,
proxy=DIRECT hostAddress=125.208.1.201 cipherSuite=none protocol=http/1.1} (recycle count=0)-->java.io.IOException:
unexpected end of stream on Connection{125.208.1.201:8080, proxy=DIRECT hostAddress=125.208.1.201 cipherSuite=none protocol=http/1.1} (recycle count=0)
java.lang.Thread.run:776com.cityctrl.service.TalkService$1.run:220com.cityctrl.service.TalkService.reEnterRepeat:469com.cityctrl.service.TalkService.connectInternet:323
com.cjzx.androidsdk.SDKInterface.Start:203com.cjzx.androidsdk.Net.WSInterface.Test:44
com.cjzx.androidsdk.Net.WebServiceInterface.Test:79
com.cjzx.androidsdk.Net.WebServiceInterface.Call:54
com.cjzx.androidsdk.Net.WebServiceInterface.Call:68
java.io.IOException: unexpected end of stream on Connection{125.208.1.201:8080, proxy=DIRECT hostAddress=125.208.1.201 cipherSuite=none protocol=http/1.1} (recycle count=0)
-->unexpected end of stream on Connection{125.208.1.201:8080, proxy=DIRECT hostAddress=125.208.1.201 cipherSuite=none protocol=http/1.1} (recycle count=0)
-----------------
java.lang.Thread.run:776 com.cityctrl.service.TalkService$1.run:220
com.cityctrl.service.TalkService.reEnterRepeat:469 com.cityctrl.service.TalkService.connectInternet:323
com.cjzx.androidsdk.SDKInterface.Start:203 com.cjzx.androidsdk.Net.WSInterface.Test:44
com.cjzx.androidsdk.Net.WebServiceInterface.Test:79
com.cjzx.androidsdk.Net.WebServiceInterface.Call:54
com.cjzx.androidsdk.Net.WebServiceInterface.Call:63
org.ksoap2.transport.HttpTransportSE.call:77
com.cjzx.androidsdk.Net.ServiceConnectionSE.openInputStream:49
com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream:243
com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse:405
com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute:463
com.android.okhttp.internal.http.HttpEngine.readResponse:782
com.android.okhttp.internal.http.HttpEngine.readNetworkResponse:906
com.android.okhttp.internal.http.HttpTransport.readResponseHeaders:80
com.android.okhttp.internal.http.HttpConnection.readResponse:210
java.io.EOFException: \n not found: size=0 content=...-->\n not found: size=0 content=...
-----------------
java.lang.Thread.run:776
com.cityctrl.service.TalkService$1.run:220
com.cityctrl.service.TalkService.reEnterRepeat:469
com.cityctrl.service.TalkService.connectInternet:323
com.cjzx.androidsdk.SDKInterface.Start:203
com.cjzx.androidsdk.Net.WSInterface.Test:44
com.cjzx.androidsdk.Net.WebServiceInterface.Test:79
com.cjzx.androidsdk.Net.WebServiceInterface.Call:54
com.cjzx.androidsdk.Net.WebServiceInterface.Call:63
org.ksoap2.transport.HttpTransportSE.call:77
com.cjzx.androidsdk.Net.ServiceConnectionSE.openInputStream:49
com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream:243
com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse:405
com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute:463
com.android.okhttp.internal.http.HttpEngine.readResponse:782
com.android.okhttp.internal.http.HttpEngine.readNetworkResponse:906
com.android.okhttp.internal.http.HttpTransport.readResponseHeaders:80
com.android.okhttp.internal.http.HttpConnection.readResponse:191
com.android.okhttp.okio.RealBufferedSource.readUtf8LineStrict:200
最后,将接口服务改了下端口,发现却可以用。这就奇怪了,同样的代码,不一样的问题。
最终,想到了先把360安全程序关掉试了试,结果就可以了。
未决疑问问题:360为何对Windows端WebService访问通过,却对Andriod端的访问进行禁止呢?