如何解决具有JDK11客户端的https代理
我想使用JDK 11 HttpClient
通过HTTPS代理执行请求。我已经尝试使用以下代码创建客户端:
HttpClient client = HttpClient
.newBuilder()
.proxy(ProxySelector.of(new InetSocketAddress("my.proxy.host",8443)))
.version(Version.HTTP_1_1)
.build();
和此代码以生成请求:
String auth = new String(Base64.getEncoder().encode("username:password".getBytes()));
var request =
HttpRequest
.newBuilder(new URI("http://my.internal.host/path"))
.POST(BodyPublishers.ofString("{\"foo\":\"bar\"}"))
.header("Proxy-Authorization","Basic " + auth)
.header("Content-Type","application/json")
.build();
但是它失败并显示java.io.IOException: HTTP/1.1 header parser received no bytes
。
我想执行的等效操作curl
为:
curl -XPOST --proxy 'https://username:password@http://my.proxy.host:8443/path' \
-d '{"foo":"bar"}' \
-h 'Content-Type: application/json' \
http://my.internal.host/path
那行得通。有什么建议吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。