Pergunta

Tentei o exemplo de http:// www.helloandroid.com / tutorials / using-ksoap2-android-and-parsing-output-data para obter a solicitação e a resposta de um serviço wsdl.está funcionando bem quando eu tentei em um proxyess.mas quando trabalho atrás de proxy, obtenho "A operação atingiu o tempo limite: falha do tempo de solicitação: java.net.SocketException" há alguma maneira de definir o proxy para SoapObject ou SoapEnvolver?

Foi útil?

Solução

Ksoap não funciona atrás de um proxy.para fazer isso funcionar .. baixe HttpTransportSE.java e ServiceConnectionSE.java do sourceforge.

Crie um pacote com HttpTransportSE e ServiceConnectionSE.

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

agora, sempre que chamarmos o método HttpTransportSE.call (), certifique-se de que ele aponta para o seu próprio pacote que contém esses dois arquivos.

Outras dicas

Olá a todos, A versão mais recente do KSOAP2.6.5 [testei e verificamos] corrige o problema de autenticação de proxy.O construtor HTTPTransportSE agora aceita a instância java.net.Proxy como um parâmetro junto com o URL.O método será como
HttpTransportSE httpTransport=new HttpTransportSE(proxy,URL);
Se o seu proxy está configurado e requer autenticação, use classe Authenticator para configurar suas credenciais de proxy e ter sucesso.HTH, se não me escreva de volta

Pelo que eu sei, você precisa configurar o proxy nas configurações do sistema operacional Android e ele funcionará bem.

Substitua por este ..

//Timeout in milliseconds

int timeout=60000;
AndroidHttpTransport androidHttpTransport=new AndroidHttpTransport(url, timeout);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top