交易是这样的:
我有一个简单的应用程序,它连接并与 tomcat 服务通信。
它在wifi上运行良好,但在3G上失败。
HttpTransportSE 的调试属性设置为 true 的堆栈跟踪告诉我它无法读取错误消息,就好像它根本没有连接:
java.io.IOException: BufferedInputStream is closed
at java.io.BufferedInputStream.streamClosed(BufferedInputStream.java:118)
at java.io.BufferedInputStream.read(BufferedInputStream.java:279)
at org.ksoap2.transport.HttpTransportSE.readDebug(HttpTransportSE.java:273)
at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:241)
at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:116)
at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:111)
如果我将调试设置为 false,它给我的只是 HTTP 400。
这是调用者:
httpTransport = new HttpTransportSE(service, PING_TIMEOUT);
httpTransport.debug = true;
SoapSerializationEnvelope pack = new SoapSerializationEnvelope(SoapEnvelope.VER11);
pack.setOutputSoapObject(ping);
httpTransport.call("", pack);
这么简单...
是谷歌安全措施还是什么?我应该使用 SSL 吗?有任何想法吗?