有人可以在下面的代码中解释如何将用户凭据传递给服务器......
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标头的一部分吗?好奇。
提前致谢。
答案 0 :(得分:0)
您已回答了自己的问题,但是是的。 "授权"是标题的一部分。
您可以在wikipedia上了解有关基本身份验证的详情。
然后javadoc不是非常清楚,但是setRequestProperty应该将新属性添加到请求标头。
作为旁注,如果您计划在生产系统中执行任何http请求,我建议您考虑使用HttpClient之类的库。直接使用URL和URLConnection可能很棘手。 HttpClient也不是很容易使用,但它比URL / URLConnection更容易。
有两个HttpClient库,请确保您使用的是版本4(这是本文发布时的最新版本),而不是版本3.