问题出现的日志:

Exception in thread "main" 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.biyao.utils.HttpUtils.main(HttpUtils.java:22)
Caused by: org.apache.http.ProtocolException: Target host is not specified
at org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:71)
at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:125)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
... 3 more

源码部分:

HttpClient发起请求Target host is not specified_java


可以看到问题发生在URIDE判断if (requestURI.isAbsolute())这里为false,最终返回的HttpHost对象为null导致,如果请求的url为空或者null,那么就会出现这种问题

但是我的URL并不为空,这是为什么呢?

原来请求的URL需要带上请求协议,如http,https,