套接字仅在网络中关闭v4.0 ksoap2

时间:2012-09-07 10:49:00

标签: android sockets ksoap2 android-ksoap2

即时通讯使用kso​​ap2库,工作正常,但当我使用Android 4.0和即时通讯3G时,当我尝试设置连接时,套接字始终关闭。 我读到的是关于连接保持活着,但我不知道如何设置此属性。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

在库源HttpConectionSE.java中设置属性连接到keep-alive编译包并使用。

答案 1 :(得分:2)

你可能已经太晚了,但是我希望这会有助于未来的人像我一样到达这里,对同样的问题感到疯狂。

这是一个Android错误。一切都适用于WiFi,但它在3G上崩溃。它发生在4.1上,但在4.2.2上没有问题。

要解决这个问题,你必须修改文件 org.ksoap2.transport.HttpTransportSE (我扩展了一个新文件,并将其称为MyHttpTransportSE,因为我使用的是ksoap2程序集jar)。 只需覆盖方法 public void call(String soapAction,SoapEnvelope envelope)注释掉该行:

    //connection.setRequestProperty("Connection", "close"); 

当然,如果您正在使用SSL,则需要从新的 MyHttpTransportSE 扩展您自己的 HttpsTransportSE

此处有更多详情:https://groups.google.com/forum/#!searchin/ksoap2-android/closed/ksoap2-

答案 2 :(得分:0)

Android 4.0不允许您在主线程上运行互联网通信。 使用AsyncTask

您阅读更多here

或者,请查看this question