I get the error "Target host must not be null, or set in parameters".
This is my code:
String url = "http://maps.google.com/maps/api/directions/json?origin=1600 Pennsylvania Avenue NW, Washington, DC 20500&destination=1029 Vermont Ave NW, Washington, DC 20005&sensor=false";
HttpClient httpclient = new DefaultHttpClient();
String goodURL = convertURL(url);//change weird characters for %etc
HttpPost httppost = new HttpPost(goodURL);
HttpResponse response = httpclient.execute(httppost);
In 5th line (last line above), my program throws an exception. here is the exact error:
java.lang.IllegalArgumentException: Host name may not be null
I Do encode my string in method convertURL...
goodURL= http://maps.google.com/maps/api/directions/json?origin=3%20Cedar%20Ave%2c%20Highland%20Park%2c%20NJ%2008904&destination=604%20Bartholomew%20Road%2c%20Piscataway%2c%20New%20Jersey%2008854&sensor=false
Any suggestions? Thanks!
Just use:
URLEncoder.encode(YOUR_STRING);
I'm not sure what your URL encode method is doing, but if you are using a method from the framework like URLEncoder
, you should never pass the full URL, just the parameters list you need to encode to escape special characters.
Encoding the full URL will percent escape every character, including the ://
into %3A%2F%2F
and all additional slashes into %2F
.
Take a look at the value of your goodUrl
string after you encode it.
Encode your URL string before you post the request, but only encode the parameters after the ?:
String url = "http://maps.google.com/maps/api/directions/json?";
String params = "origin=1600 Pennsylvania Avenue NW, Washington, DC 20500&destination=1029 Vermont Ave NW, Washington, DC 20005&sensor=false";
HttpClient httpclient = new DefaultHttpClient();
String goodParams = convertURL(params);//change weird characters for %etc
HttpPost httppost = new HttpPost(url + goodParams);
HttpResponse response = httpclient.execute(httppost);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With