gpt4 book ai didi

带有代理的 Java 11 HttpClient, header 解析器未收到任何字节

转载 作者:行者123 更新时间:2023-12-04 02:41:03 52 4
gpt4 key购买 nike

尝试使用 java.net.http.HttpClient 发出简单的获取请求。它在没有代理使用的情况下工作。代理有效且有效。 Proxy 支持 https/s 和 socks5 连接。但是,当我尝试像示例中那样使用代理时,收到此错误:

 java.io.IOException: HTTP/1.1 header parser received no bytes

我认为我正确地将代理传递给客户端(如这里的示例 https://openjdk.java.net/groups/net/httpclient/recipes.html ),尽管我传递的是代理 IP,而不是域,这似乎被 InetSocketAddress 接受。

例子:

                HttpRequest request = HttpRequest.newBuilder()
.uri(new URI("http://google.com"))
.headers("Content-Type", "application/json;charset=UTF-8")
.GET()
.build();

HttpResponse<String> response = HttpClient
.newBuilder()
.connectTimeout(Duration.ofSeconds(15))
.proxy(ProxySelector.of(
new InetSocketAddress(
"1.1.1.1", 1111
)
))
.build()
.send(request, HttpResponse.BodyHandlers.ofString());

最佳答案

在我的例子中,我通过将首选协议(protocol)设置为 HTTP 1.1 来修复它。

HttpClient.newBuilder()
.version(Version.HTTP_1_1)

关于带有代理的 Java 11 HttpClient, header 解析器未收到任何字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59385349/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com