【问题标题】:ksoap2 issue java.net.ConnectExceptionksoap2 问题 java.net.ConnectException
【发布时间】:2012-07-18 12:54:59
【问题描述】:

我正在使用 kSoap2 访问肥皂网络服务。我在执行以下行时得到 java.net.connectException

androidHttpTransport.call(Constants.SOAP_ACTION_GET_METHOD_NAME, envelope)   

这种情况并不总是发生,但有时会发生。这是与服务器连接超时的问题吗?如何增加 kSoap 中的连接超时?我用谷歌搜索,但找不到解决方案。 谁能建议我解决此错误的解决方案。

Logcat 详情如下:

07-17 14:46:24.800: W/System.err(8103): java.net.ConnectException: failed to connect to www.yahoo.com/175.41.138.237 (port 80) after 20000ms: isConnected failed: ENETUNREACH (Network is unreachable)
07-17 14:46:24.800: W/System.err(8103):     at libcore.io.IoBridge.isConnected(IoBridge.java:214)
07-17 14:46:24.800: W/System.err(8103):     at libcore.io.IoBridge.connectErrno(IoBridge.java:152)
07-17 14:46:24.800: W/System.err(8103):     at libcore.io.IoBridge.connect(IoBridge.java:112)
07-17 14:46:24.800: W/System.err(8103):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
07-17 14:46:24.800: W/System.err(8103):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
07-17 14:46:24.800: W/System.err(8103):     at java.net.Socket.connect(Socket.java:842)
07-17 14:46:24.800: W/System.err(8103):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:77)
07-17 14:46:24.800: W/System.err(8103):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
07-17 14:46:24.800: W/System.err(8103):     at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351)
07-17 14:46:24.800: W/System.err(8103):     at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86)
07-17 14:46:24.810: W/System.err(8103):     at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
07-17 14:46:24.810: W/System.err(8103):     at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308)
07-17 14:46:24.810: W/System.err(8103):     at libcore.net.http.HttpEngine.connect(HttpEngine.java:303)
07-17 14:46:24.810: W/System.err(8103):     at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282)
07-17 14:46:24.810: W/System.err(8103):     at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232)
07-17 14:46:24.810: W/System.err(8103):     at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
07-17 14:46:24.810: W/System.err(8103):     at org.ksoap2.transport.ServiceConnectionSE.connect(ServiceConnectionSE.java:80)

【问题讨论】:

    标签: android ksoap


    【解决方案1】:

    如何在 kSoap 中增加连接超时?

    HttpTransportSE 在某些情况下忽略超时值似乎仍然存在问题。 看到这个相关的link

    但是,解决此问题的方法是修改现有的 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);
              }
    

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

    另请参阅ksoap never timeout

    希望对你有帮助。

    【讨论】:

    • 是的。你的解决方案帮助了我。正如你所说,我现在改用新版本的 ksoap。现在 java.net.ConnectException 不来了。但我现在得到 java.net.SocketTimeOutException。
    • 是的,会来的,见this...试着抓住它,这应该可以解决问题。另外,您可以尝试: HttpTransportSE androidHttpTransport = new HttpTransportSE(URL,60000);HttpTransportSE androidHttpTransport = new HttpTransportSE(URL,60000);
    • 是的,我已经在使用相同的了,HttpTransportSE androidHttpTransport = new HttpTransportSE(Constants.URL,30000);但只有 30 毫秒。 60 毫秒是否对我有帮助
    • 是的。有区别。以前它会出现 10 次中的 7 次。现在 10 次中有 4 次。如果您找到任何其他解决方案,请与我分享。
    猜你喜欢
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多