【问题标题】:Java bug - Can't add Authorization to HttpURLConnection set/addRequestProperty()Java 错误 - 无法向 HttpURLConnection set/addRequestProperty() 添加授权
【发布时间】:2019-03-14 09:41:12
【问题描述】:

我正在尝试将授权添加到我的 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();
    }

授权的值已经编码。

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

------- 请求标头 -----------

标题:接受:[文本/html]

标题:我的属性:[what-ever-value]

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

【问题讨论】:

    标签: java header authorization httpurlconnection httpsurlconnection


    【解决方案1】:

    欢迎来到 StackOverflow。

    您的标头“Authorization”已正确添加,但在访问 httpCon.getRequestProperties() 时将被排除,因为标头“Authorization”和“Proxy-Authorization”位于 HttpURLConnection 类的“EXCLUDED_HEADERS”下。如果您使用此标头点击任何 URL,它们将在请求中传递。无需担心。要对此进行测试,您可以使用https://beeceptor.com 等网站

    【讨论】:

    • 只调试 HttpURLConnection 类。你会更好地理解它。
    猜你喜欢
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    相关资源
    最近更新 更多