簡體   English   中英

在 Java 多線程環境中分配唯一代理

[英]Assign Unique Proxy in a Multithreaded Environment in Java

我知道 Java 通過設置系統屬性來支持使用代理:

System.setProperty("http.proxyHost", "domain.com");     
System.setPropery("http.proxyPort", "8080");

或者通過使用ProxySelector類。

使用ProxySelector類的好處是它可以只為特定的 URL 啟用。

我的需求有點不同。

我想在連接到外部 (SOAP) Web 服務時設置特定代理,但我想更改每個線程的代理。 換句話說,我將使用多個線程連接到 SOAP Web 服務,我希望線程 a使用代理 a線程 b使用代理 b等等(而不是在整個 JVM 中使用一個代理)

這可能嗎?

澄清:我想同時訪問兩個以上不同的代理,而不是按順序訪問,因此任何需要我鎖定/同步訪問的解決方案都不起作用。

你已經有了解決方案的碎片。 實現自己的ProxySelector ,並在select方法中,根據調用select方法的線程選擇不同的代理。

你可以在你的 ProxySelector 實現中有一個Map<Thread,Proxy>來存儲和選擇每個線程的代理(確保以線程安全的方式訪問/更新這個映射)

暫無
暫無

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

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