2

我正在从我的活动中调用另一个类的方法,该方法使用 ksoap2 调用 Web 服务。我想为此处理超时。如果该方法的执行时间超过 10 秒,那么我需要显示一个警告对话框,指示该过程不成功。

我尝试使用超时值如下:

HttpsTransportSE transport = new HttpsTransportSE(URL,TIMEOUT);

但是 ksoap2 出于某种原因忽略了超时。我正在使用 ksoap2 2.6.5。

有什么方法可以让我执行该方法 10 秒,然后在 android 中显示指示成功或失败的相应对话框?

4

1 回答 1

5

HttpTransportSE 在某些情况下忽略超时值似乎仍然存在一个未解决的问题。请参阅此相关链接

但是,对此的解决方案涉及修改现有的ksoap2 API.

感谢Lightsoftai的开发人员,您现在可以HttpTransportSE使用以下代码添加超时:

注意您可以为此使用 ksoap2 API 版本 2.5.2 或更高版本

       /**
       * Creates instance of HttpTransportSE with set url
       *
       * @param url 
       *             the destination to POST SOAP data
       */
         public HttpTransportSE(String url) {
         super(url);
         }

       /**
      * Creates instance of HttpTransportSE with set url
      *
      * @param url
      *            the destination to POST SOAP data
      * @param timeout
      *               timeout for connection and Read Timeouts (milliseconds)
       */
       public HttpTransportSE(String url, int timeout) {
       super(url, timeout);
          }

您可以从此处下载相同的 jar 文件。

另请参阅ksoap never timeout

希望能帮助到你。

于 2012-07-09T05:40:16.553 回答