我收到错误“目标主机不能为空,或设置参数”.
>我的清单文件中有Internet权限
>我在我的Url之前放了’http://’
>我对URL进行编码
这是我的代码:
String url = "http://maps.google.com/maps/api/directions/json?origin=1600 Pennsylvania Avenue NW,Washington,DC 20500&destination=1029 Vermont Ave NW,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);
在第5行(最后一行),我的程序抛出异常.这里是确切的错误:
java.lang.IllegalArgumentException: Host name may not be null
我在方法convertURL中编码我的字符串…
goodURL = http://maps.google.com/maps/api/directions/json?origin=3雪松大道,新泽西州高地公园08904& destination = 604新泽西皮斯卡塔韦巴塞洛缪路604号08854& sensor = false
有什么建议么?
谢谢!
解决方法
我不知道你的URL编码方式是做什么的,但是如果你使用的框架像URLEncoder这样的方法,你绝对不应该传递完整的URL,只需要编码的参数列表来转义特殊字符.
对完整的URL进行编码将会将每个字符的百分比转换为:// into://和所有其他斜杠转换为/.
编码好后,看看你的goodUrl字符串的值.