ksoap timeout behind proxy in android

2019-03-05 03:40发布

i tried the example from http://www.helloandroid.com/tutorials/using-ksoap2-android-and-parsing-output-data to get request and response from a wsdl service. its working fine when i tried in a proxyless. but when i work behind proxy,i get "The operation timed out:request time failed: java.net.SocketException" is there any way to set proxy to SoapObject or Soap Envelop?

4条回答
女痞
2楼-- · 2019-03-05 04:00

Replace with this..

//Timeout in milliseconds

int timeout=60000;
AndroidHttpTransport androidHttpTransport=new AndroidHttpTransport(url, timeout);
查看更多
一夜七次
3楼-- · 2019-03-05 04:08

  Hi Everyone , The latest version of KSOAP2.6.5 [Tested it and verified it] has fix for the proxy authentication issue . The HTTPTransportSE constructor now accepts java.net.Proxy instance as a parameter along with URL. The method will be like
            HttpTransportSE httpTransport=new HttpTransportSE(proxy,URL);
  If your proxy is configured and if it requires authentication then use Authenticator class to setup your proxy credentials and have success. HTH , if not write me back

查看更多
虎瘦雄心在
4楼-- · 2019-03-05 04:15

Ksoap does not work behind a proxy. inorder to make that working.. download the HttpTransportSE.java and ServiceConnectionSE.java from sourceforge.

Create a package with HttpTransportSE and ServiceConnectionSE.

In ServiceConnectionSE constructor:

 String myProxy=android.net.Proxy.getDefaultHost() ;
            int myPort=android.net.Proxy.getDefaultPort();

            if(myProxy!=null){
                Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(myProxy, myPort));
                connection = (HttpURLConnection) new URL(url).openConnection(proxy);
            }
            else
            {
                connection = (HttpURLConnection) new URL(url).openConnection();
            }

now wherever we call HttpTransportSE.call()method make sure that it points to ur own package which has this two files.

查看更多
在下西门庆
5楼-- · 2019-03-05 04:16

As far as I know you have to set up the proxy in android operating system settings themselves and it will work fine.

查看更多
登录 后发表回答