Java bug - 无法向HttpURLConnection set / addRequestProperty()添加授权

问题描述 投票:0回答:1

我正在尝试在我的HttpURLConnection中将请求添加到请求中。我可以添加其他属性,如Content-type甚至自定义属性,但是当我尝试添加Authorization属性时,它只是不添加它。这是我的代码:

try {
        URL url = new URL("http://www.google.es");
        HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();

        httpCon.setDoOutput(true);
        httpCon.setRequestProperty("Authorization", "Bearer aqufbzkia.zsdkbdckbjae.AKbAbaudbf");

        httpCon.setRequestProperty("my-property", "what-ever-value");

        httpCon.setRequestProperty("Accept", "text/html");

        System.out.println("------------------- Request Headers -----------------------");

        Map<String, List<String>> requestHeaders = httpCon.getRequestProperties();
        Set<String> requestHeader = requestHeaders.keySet();
        for(String key : requestHeader)
            System.out.println("Header: " + key + " : " + requestHeaders.get(key).toString());

    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

授权的值已经编码。

我从循环得到的输出是这样的:

-------------------请求标题-----------------------

标题:接受:[text / html]

标题:我的财产:[什么是有价值的]

授权未添加到请求属性中,请审核并提供反馈。

java header authorization httpurlconnection httpsurlconnection
1个回答
0
投票

欢迎来到StackOverflow。

您的标题“授权”正在正确添加,但在访问httpCon.getRequestProperties()时将被排除,因为标题“授权”和“代理授权”位于HttpURLConnection类的“EXCLUDED_HEADERS”下。如果您点击带有此标题的任何网址,它们将在请求中传递。没有必要担心它。要测试这个,你可以使用像https://beeceptor.com这样的网站

© www.soinside.com 2019 - 2024. All rights reserved.