簡體   English   中英

Java中的硬編碼代理,用於連接到特定的URL

[英]Hard coding Proxy in Java for connecting to specific URL

我有一個Web應用程序,該應用程序必須連接到外部Web服務(使用Axis客戶端)。 我必須執行兩件事:

  • 允許Web應用程序使用給定的HTTP代理與外部進行通信(以授權WS客戶端)
  • 當我們通過URI執行本地呼叫時,使用直接連接

    http://localhost:7001/webApp/getImg?id=22

請注意,如果我們使用系統屬性(http.proxyHost等)而不是ProxySelector,它就像一個超級按鈕。

但是,然后所有本地電話都路由到了代理服務器上,這是我所不希望的。

因此,只有一個簡單的問題-如何實現與使用代理系統屬性時執行方式相同的ProxySelector

您還可以通過設置http.nonProxyHosts=localhost使用系統屬性來實現。 如果您想使用ProxySelector進行操作,請嘗試這樣的操作

final Proxy PROXY = new Proxy(Proxy.Type.HTTP,
  new InetSocketAddress("my.proxy.server", 8080));
ProxySelector.setDefault(new ProxySelector() {
  public List<Proxy> select(URI u) {
    if(u != null && !"localhost".equals(u.getHost())) {
      return Arrays.asList(PROXY, Proxy.NO_PROXY);
    }
    else {
      return Collections.singletonList(Proxy.NO_PROXY);
    }
  }

  public void connectFailed(URI u, SocketAddress sa, IOException e) {
    // do nothing
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM