Pergunta

O getUrlContent padrão funciona bem quando não há firewall.Mas tenho exceções quando tento fazer isso atrás de um firewall.

Tentei definir "servidor proxy http" no gerenciador AVD, mas não funcionou.Alguma ideia de como configurá-lo corretamente?

e aliás:A partir da documentação do Android "Você pode usar a opção -verbose -proxy para diagnosticar problemas de conexão com proxy". -verbose-proxy não é uma opção válida.

protected static synchronized String getUrlContent(String url) throws ApiException {
    if(url.equals("try")){
        return "thanks";

    }
    if (sUserAgent == null) {
        throw new ApiException("User-Agent string must be prepared");
    }

    // Create client and set our specific user-agent string
    HttpClient client = new DefaultHttpClient();
    HttpGet request = new HttpGet(url);
    request.setHeader("User-Agent", sUserAgent);

    try {
        HttpResponse response = client.execute(request);

        // Check if server response is valid
        StatusLine status = response.getStatusLine();
        if (status.getStatusCode() != HTTP_STATUS_OK) {
            throw new ApiException("Invalid response from server: " +
                    status.toString());
        }

        // Pull content stream from response
        HttpEntity entity = response.getEntity();
        InputStream inputStream = entity.getContent();

        ByteArrayOutputStream content = new ByteArrayOutputStream();

        // Read response into a buffered stream
        int readBytes = 0;
        while ((readBytes = inputStream.read(sBuffer)) != -1) {
            content.write(sBuffer, 0, readBytes);
        }

        // Return result from buffered stream
        return new String(content.toByteArray());
    } catch (IOException e) {
        throw new ApiException("Problem communicating with API", e);
    }
}
Foi útil?

Solução

Veja se esse pequeno animal irá ajudá -lo. Pode ser que você precise disso na imagem do emulador que está executando.

http://openhandsetmagazine.com/2007/11/tips-howto-connect-android-emulator-behind-proxy/

Outras dicas

Você também pode definir proxy em seu código.

   public void setProxy(DefaultHttpClient httpclient) {  
           final String PROXY_IP = "<insert your IP here>";  
            final int PROXY_PORT = <insert_PROXY_PORT#>;  

            httpclient.getCredentialsProvider().setCredentials(  
                    new AuthScope(PROXY_IP, PROXY_PORT),  
                    new UsernamePasswordCredentials(  
                            "username", "password"));  

           HttpHost proxy = new HttpHost(PROXY_IP, PROXY_PORT);  

           httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,  
                   proxy);  


       }  
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top