Библиотека Ksoap и время ожидания запроса? - PullRequest
0 голосов
/ 16 ноября 2010

Я использую библиотеку ksoap для вызова веб-службы в Android. Я не вижу здесь свойства тайм-аута запроса в случае, если ИНТЕРНЕТ не доступен во время вызова, поэтому важно иметь его.

кто-то предложил мне использовать класс сокетов с 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)
{}

}

1 Ответ

0 голосов
/ 02 декабря 2010

Вам потребуется изменить класс HttpTransportSE, чтобы он принял параметр тайм-аута, который проходит через сокет. Это было бы довольно просто реализовать, но глядя на класс HttpsTransportSE, который уже делает это.

Тогда вы можете перехватить исключение SocketTimeoutException и сделать все необходимое. Не стесняйтесь создавать проблемы в проекте и / или вносить улучшения.

...