ksoap timeout atrás de proxy no android
-
28-10-2019 - |
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?
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);