解决HttpClient访问返回403 forbiddent

直接创建HttpClient对象

CloseableHttpClient httpClient = new HttpClients.createDefault();

这段代码会产生一个403 forbidden,原因是User-Agent字段存在问题,我们需要设置UA字段。UA是浏览器身份的标识。
User-Agent是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。用较为普通的一点来说,是一种向访问网站提供你所使用的浏览器类型、操作系统及版本、CPU 类型、浏览器渲染引擎、浏览器语言、浏览器插件等信息的标识。UA字符串在每次浏览器 HTTP 请求时发送到服务器!
浏览器UA 字串的标准格式为: 浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识 版本信息

解决办法

//我们可以使用一个Builder来设置UA字段,然后再创建HttpClient对象
HttpClientBuilder builder = HttpClients.custom();
//对照UA字串的标准格式理解一下每部分的意思
builder.setUserAgent("Mozilla/5.0(Windows;U;Windows NT 5.1;en-US;rv:0.9.4)");       
final CloseableHttpClient httpClient = builder.build();

然后再使用创建出来的对象httpClient

你可能感兴趣的:(HttpClient)