gpt4 book ai didi

java - 为什么 HttpURLConnection 不发送多个 header ?

转载 作者:行者123 更新时间:2023-12-01 19:54:24 30 4
gpt4 key购买 nike

我尝试使用 HttpURLConnection 通过我的请求发送多个 header (接受和身份验证 key ),但仅发送第一个 header 。

        URL url = new URL(fileOrUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

for (String h : getHeaders()) {
String[] keyval = h.split(":");
if (keyval.length != 2) {
throw new IllegalArgumentException();
}
System.out.println("Setting header " + keyval[0] + ": " + keyval[1]);
conn.addRequestProperty(keyval[0], keyval[1]);
}


System.out.println(conn.getRequestProperties());
return stream = conn.getInputStream();

这会导致:

Setting header Accept:  application/x-google-protobuf
Setting header Authorization: apikey
{Accept=[ application/x-google-protobuf]}

为什么只发送一个 header ?

最佳答案

如果您使用wire-shark或类似的工具,您应该会看到两个 header 都已发送。

HttpURLConnection 实现类中有一些代码可以从 getRequestProperties() 返回的映射中过滤掉敏感 header 。被过滤掉的 header 之一是“Authorization”

过滤的 header (在 Java 8 中)为 "Proxy-Authorization""Authorization""Cookie"“Cookie2”

关于java - 为什么 HttpURLConnection 不发送多个 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50077988/

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