问题描述:
有些网站在接受HTTP请求时会先让你进行身份认证,所以在用Java发送HTTP请求时会出现401错误码,无法正常获取到想要的内容。
解决方法:
我以发送get请求为例,说明解决方法。
public static String getMethod(String url) {
String rb = null;
HttpClient client = new HttpClient();
GetMethod getMethod = new GetMethod(url);
try {
String str = "用户名:密码"; //这是能通过认证的用户名和密码
byte[] b = str.getBytes("utf-8");
str = new BASE64Encoder().encode(b); //使用base64对用户名:密码进行加密
getMethod.setRequestHeader("Authorization", "Basic " + str); //在请求头添加Authorization字段 “Basic ”这里有个空格
client.executeMethod(getMethod);
rb = getMethod.getResponseBodyAsString();
}catch (Exception e) {
e.printStackTrace();
}
return rb;
}