Pergunta

Eu estou tentando usar a biblioteca mais recente (4.0.1) Apache HTTP componentes principais. No entanto, o meu navegador web passa por um proxy - suponho que é myproxy.com:9191. alguém poderia fornecer um código de exemplo para obter um simples HTTP GET para usar isso como um proxy?

Eu tentei adicionar o seguinte no início do meu código, mas não tinha alegria:

ProxySelector.setDefault(new ProxySelector() {
  public List<Proxy> select(URI uri) {
    Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("myproxy.com", 9191);
    return Arrays.asList(new Proxy[]{proxy)});
  }
  public void connectFailed(URI uri, SocketAddress sa, IOException ioe) {
    ioe.printStackTrace();
  }
});
Foi útil?

Solução

Na ausência de uma resposta, aqui está o que eu descobri.

Em primeiro lugar, para este tipo de coisa, você não só quer usar a biblioteca núcleo http, você quer usar httpclient assim, certifique-se de baixar tanto na página de download.

Em segundo lugar, use este código:

DefaultHttpClient httpclient = new DefaultHttpClient();
HttpHost proxy = new HttpHost("myproxy.com", 9191);
httpclient.getCredentialsProvider().setCredentials(
  new AuthScope(PROXY, PROXY_PORT),
  new UsernamePasswordCredentials("username", "password"));
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top