如何设置 HttpClient 代理?

How do I set the HttpClient proxy?

我正在尝试创建一个帐户检查器,循环遍历组合列表并检查帐户是否有效,我的问题是我需要时不时地更改代理,这是我目前正在努力解决的问题.问题是我一开始不知道如何更改代理,而且我尝试了无数似乎不起作用的解决方案。

这是我当前运行的代码,无需更改代理

ObjectMapper objectMapper = new ObjectMapper();
String requestBody = objectMapper.writeValueAsString(credentials);
            
HttpClient client = HttpClient.newBuilder().build();
HttpRequest request = HttpRequest.newBuilder()
                    .uri(URI.create(url))
                    .POST(HttpRequest.BodyPublishers.ofString(requestBody))
                    .build();


HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());;
String responseString = response.body();
if (!responseString.contains("Invalid")) {
      type = AccType.VALID;
}

我用的进口货

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

我试过的

使用代理方法直接从客户端对象设置代理 使用不同的导入(与导入的其余部分不兼容) 我自己试过的随机解决方案

备注

文档

  1. java 文档有带代理的 HttpClient 的用法示例
  2. HttpClient Doc

用法

    HttpClient.newBuilder()
        .proxy(ProxySelector.of(new InetSocketAddress("your proxy host", your proxy port as integer)))
        .build();

如果您的代理有授权问题,请检查this answer