[英]How to use Proxy password authentication on Java's Native HTTP Client
[英]Changing Java's Native HTTP Client's proxy without building a new HTTP Client
我有一個無限循環的刮刀,我想更改客戶端上的代理,以防出現 IP 禁止(在 403 狀態代碼上)之類的問題,或者如果我只想在每次循環后更改代理以避免禁止完全地。
與此有關的問題,特別是后一種情況,是程序在達到允許的最大連接數時最終崩潰(java.net.SocketException:沒有可用的緩沖區空間(已達到最大連接數?))。
有沒有辦法在不構建新代理的情況下更改 HTTP 客戶端的代理?
有沒有辦法在不構建新代理的情況下更改 HTTP 客戶端的代理?
我假設您在談論 JDK 11(及更高版本) java.net.http.HttpClient
API。
javadoc是這樣說的:
HttpClient
可用於發送請求並檢索其響應。HttpClient
是通過構建器創建的。 構建器可用於配置每個客戶端的狀態,例如:首選協議版本(HTTP/1.1 或 HTTP/2)、是否遵循重定向、代理、身份驗證器等。一旦構建,HttpClient
是不可變的,並且可用於發送多個請求。
我的理解是你不能改變代理; 即您不能替換客戶端的ProxySelector
對象。
但是, ProxySelector
( javadoc ) 是一個抽象類,您可以創建自己的自定義子類,允許您通過許多不同的代理進行循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.