Java错误-无法将授权添加到HttpURLConnection set / addRequestProperty()

时间:2019-03-14 09:41:12

标签: java header authorization httpurlconnection httpsurlconnection

我正在尝试向我的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]

     

标题:我的属性:[无所不包]

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

1 个答案:

答案 0 :(得分:0)

欢迎使用StackOverflow。

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

之类的网站