Domanda

Sto cercando di utilizzare l'ultima (4.0.1) Apache libreria di componenti di base http. Tuttavia, il mio browser web passa attraverso un proxy - supponiamo è myproxy.com:9191. Qualcuno potrebbe fornire qualche codice di esempio per ottenere un semplice HTTP GET di utilizzare questo come un proxy?

Ho provato ad aggiungere quanto segue all'inizio del mio codice, ma non ha avuto la gioia:

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();
  }
});
È stato utile?

Soluzione

In assenza di una risposta, ecco cosa ho scoperto.

In primo luogo, per questo genere di cose, non si desidera utilizzare la libreria di base http, che si desidera utilizzare httpclient così, assicuratevi di scaricare sia dalla pagina di download.

In secondo luogo, utilizzare questo codice:

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top