我正在尝试使用 HttpUrlConnection
为我的请求添加标头,但方法 setRequestProperty()
不会收到任何带有标头的请求 .
HttpURLConnection hc;
try {
String authorization = "";
URL address = new URL(url);
hc = (HttpURLConnection) address.openConnection();
hc.setDoOutput(true);
hc.setDoInput(true);
hc.setUseCaches(false);
if (username != null && password != null) {
authorization = username + ":" + password;
}
if (authorization != null) {
byte[] encodedBytes;
encodedBytes = Base64.encode(authorization.getBytes(), 0);
authorization = "Basic " + encodedBytes;
hc.setRequestProperty("Authorization", authorization);
}
6 回答
我以前使用过以下代码,它在TomCat中启用了基本身份验证:
您可以尝试上面的代码 . 上面的代码用于POST,您可以为GET修改它
只是因为我没有't see this bit of information in the answers above, the reason the code snippet originally posted doesn'正常工作是因为
encodedBytes
变量是byte[]
而不是String
值 . 如果您将byte[]
传递给new String()
,如下所示,代码段完美无缺 .如果您使用的是Java 8,请使用以下代码 .
你的代码很好 . 你也可以用这种方式使用同样的东西 .
如果授权成功,则返回响应代码200
最后这对我有用
使用RestAssurd,您还可以执行以下操作: