org.apache.http.ProtocolException: Target host is not specified
58,189
The error message is kind of misleading. You've provided a value that does not represent a complete URI
request = new HttpGet("trib.me/1lBFzSi");
It's missing a protocol.
Simply provide a complete URI
request = new HttpGet("http://trib.me/1lBFzSi");
Author by
ac11
Updated on May 12, 2020Comments
-
ac11 almost 4 years
I have written a simple httprequest/response code and I am getting this below error. I have referenced httpclient, httpcore, common-codecs and common-logging in my classpath. I am very new to java and have no clue what is going on here. Please help me.
Code:
import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.HttpResponse; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.Header; import org.apache.http.HttpHeaders; public class UnshorteningUrl { public static void main(String[] args) throws Exception { HttpGet request=null; HttpClient client = HttpClientBuilder.create().build(); try { request = new HttpGet("trib.me/1lBFzSi"); HttpResponse httpResponse=client.execute(request); Header[] headers = httpResponse.getHeaders(HttpHeaders.LOCATION); // Preconditions.checkState(headers.length == 1); String newUrl = headers[0].getValue(); System.out.println("new url" + newUrl); } catch (IllegalArgumentException e) { // TODO: handle exception }finally { if (request != null) { request.releaseConnection(); } } }}
Error:
Exception in thread "main" org.apache.http.client.ClientProtocolException at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:186) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) at UnshorteningUrl.main(UnshorteningUrl.java:26) Caused by: org.apache.http.ProtocolException: Target host is not specified at org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:69) at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:124) at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:183) ... 4 more