前言
测试一条get 请求报错
org.apache.http.client.ClientProtocolException
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:187)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
at com.auxgroup.web.controller.tool.HttpClientUtil.doGet(HttpClientUtil.java:57)
at com.auxgroup.web.controller.tool.HttpClientUtil.doGet(HttpClientUtil.java:79)
at com.auxgroup.web.controller.tool.HttpClientUtil.main(HttpClientUtil.java:166)
1、没加协议头(常见)
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
doGet("www.baidu.com");
doPost("http://www.baidu.com",new HashMap<>());
}
}
2、URL错误
多加空格斜杠等
3、connection设置错误
httpClient发起请求时报ClientProtocolException的错误
4、user-agent未设置
这个我的不设置也可以访问 仅供参考
ClientProtocolException
5、公司网关限制
IP白名单
org.apache.http.client.ClientProtocolException: URI does not specify a valid host name:localhost:xxx