2012-07-18 2 views
2

soap 웹 서비스에 액세스하기 위해 kSoap2를 사용하고 있습니다. 나는 아래 라인ksoap2 문제 java.net.ConnectException

androidHttpTransport.call(Constants.SOAP_ACTION_GET_METHOD_NAME, envelope) 

이 항상 발생하지 않습니다를 실행하는 동안 java.net.connectException을 받고 있지만, 시대의 일부입니다. 이 문제가 서버 연결 시간 초과입니까? kSoap에서 연결 시간을 늘리는 방법은 무엇입니까? 내가 봤지만, 해결책을 찾을 수 없습니다. 누구든지 나에게이 오류를 해결할 수있는 해결책을 제안 할 수 있습니까?

로그 캣 세부 사항은 다음과 같습니다

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) 

답변

1

어떻게 kSoap의 연결 시간을 증가?

어떤 경우에는 제한 시간을 무시하고 여전히 HttpTransportSE과 관련된 열린 문제가있는 것으로 보입니다. 관련 정보 link을 참조하십시오.

그러나 이에 대한 해결책은 기존 ksoap2 API의 수정과 관련됩니다.

: 이제 다음 코드를 사용 HttpTransportSE에 시간 제한을 추가 할 수 있습니다 Lightsoftai에서 개발자에게

덕분에

 /** 
     * 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); 
      } 
에 대한 ksoap2 API 버전 2.5.2 이상을 사용할 수 있습니다

here에서 jar 파일을 다운로드 할 수 있습니다.

ksoap never timeout도 참조하십시오.

희망이 있습니다.

+0

예. 당신의 솔루션이 도움이되었습니다. u가 말했듯이, 나는 지금 ksoap의 새로운 버전으로 바 꾸었습니다. 이제 java.net.ConnectException이 발생하지 않습니다. 하지만 지금 java.net.SocketTimeOutException 점점. – Ammu

+0

예, 올 것이다 [이] (http://stackoverflow.com/questions/4408955/ksoap-request-timeout) ... 그것을 잡으려고 노력하고 그 문제를 해결한다. 또한 다음을 시도 할 수 있습니다. HttpTransportSE androidHttpTransport = new HttpTransportSE (URL, 60000); HttpTransportSE androidHttpTransport = new HttpTransportSE (URL, 60000); –

+0

예 이미 동일한 것을 사용하고 있습니다. HttpTransportSE androidHttpTransport = new HttpTransportSE (Constants.URL, 30000); 그러나 단 30ms. 60 ms가 나를 도울 것인가 – Ammu