0

我正在使用 ksoap 库在 android 中调用 web 服务。如果 INTERNET 在通话过程中不可用,我在这里看不到请求超时属性,因此拥有它很重要。

有人建议我使用具有 Sotimeout 的套接字类,但我不知道如何在这里实现它有人建议我该怎么办?

public void callWebservice()
{
try {

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

request.addProperty("passonString", "anything");

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);

HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);

..
...
}catch(Exception ex)
{}

}
4

1 回答 1

0

您必须修改 HttpTransportSE 类以采用传递到套接字的超时参数。实现起来非常简单,但是看看已经做到这一点的 HttpsTransportSE 类。

然后你可以捕获 SocketTimeoutException 并做任何必要的事情。随意在项目上创建问题或贡献增强功能。

于 2010-12-02T05:49:00.547 回答