Pregunta

Probé el ejemplo de http:// www..helloandroid.com / tutorials / using-ksoap2-android-and-parsing-output-data para obtener una solicitud y una respuesta de un servicio wsdl.Está funcionando bien cuando lo intenté en un proxyless.pero cuando trabajo detrás del proxy, aparece "La operación agotó el tiempo de espera: el tiempo de solicitud falló: java.net.SocketException" ¿hay alguna forma de configurar el proxy para SoapObject o Soap?¿Envolver?

¿Fue útil?

Solución

Ksoap no funciona detrás de un proxy.para que funcione. descargue HttpTransportSE.java y ServiceConnectionSE.java de sourceforge.

Cree un paquete con HttpTransportSE y ServiceConnectionSE.

En el constructor ServiceConnectionSE:

 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();
            }

ahora, donde sea que llamemos al método HttpTransportSE.call (), asegúrese de que apunte a su propio paquete que tiene estos dos archivos.

Otros consejos

Hola a todos, La última versión de KSOAP2.6.5 [Probé y verifiqué] tiene una solución para el problema de autenticación de proxy.El constructor HTTPTransportSE ahora acepta la instancia java.net.Proxy como parámetro junto con la URL.El método será como
HttpTransportSE httpTransport=new HttpTransportSE(proxy,URL);
Si su proxy está configurado y requiere autenticación, utilice Authenticator para configurar sus credenciales de proxy y tener éxito.HTH, si no, escríbeme

Hasta donde yo sé, debes configurar el proxy en la configuración del sistema operativo Android y funcionará bien.

Reemplazar con esto ..

//Timeout in milliseconds

int timeout=60000;
AndroidHttpTransport androidHttpTransport=new AndroidHttpTransport(url, timeout);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top