在android中使用Ksoap2时处理超时

A A*_*ron 2 android timeout handlers ksoap2

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

我尝试使用超时值,如下所示:

HttpsTransportSE transport = new HttpsTransportSE(URL,TIMEOUT);
Run Code Online (Sandbox Code Playgroud)

但ksoap2由于某种原因忽略了超时.我正在使用kso​​ap2 2.6.5.

有没有办法在哪里可以执行该方法10秒,然后显示相应的对话框,指示android的成功或失败?

Par*_*shi 5

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

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

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

注意:您可以使用kso​​ap2 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);
          }
Run Code Online (Sandbox Code Playgroud)

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

另请参考ksoap永不超时.

希望能帮助到你.