Java HTTP基本身份验证说明

时间:2014-07-15 16:15:35

标签: java http authentication

有人可以在下面的代码中解释如何将用户凭据传递给服务器......

        URL urlObj = new URL("https://javaguy.com");

        HttpURLConnection conn = (HttpURLConnection) urlObj.openConnection(); conn.setRequestMethod("GET");
        conn.setRequestProperty("Accept", "text/xml");

        String userPassword = username + ":" + password;
        byte[] authEncBytes = Base64.encodeBase64(userPassword.getBytes());
        String authStringEnc = new String(authEncBytes);
        conn.setRequestProperty("Authorization", "Basic " + authStringEnc);

它是HTTP标头的一部分吗?好奇。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您已回答了自己的问题,但是是的。 "授权"是标题的一部分。

您可以在wikipedia上了解有关基本身份验证的详情。

然后javadoc不是非常清楚,但是setRequestProperty应该将新属性添加到请求标头。

作为旁注,如果您计划在生产系统中执行任何http请求,我建议您考虑使用HttpClient之类的库。直接使用URL和URLConnection可能很棘手。 HttpClient也不是很容易使用,但它比URL / URLConnection更容易。

有两个HttpClient库,请确保您使用的是版本4(这是本文发布时的最新版本),而不是版本3.