【发布时间】:2015-02-05 10:07:58
【问题描述】:
我编码了一些 URL 参数并且 URL 变得正确,但我仍然得到java.lang.IllegalArgumentException。这是我的代码:
StringBuilder makeUrlFromWord = new StringBuilder();
List<String> splittedUrl = mParser.splitRequest(urls[0]);
try {
makeUrlFromWord.append("http://")
.append(URLEncoder.encode(splittedUrl.get(0), HTTP.UTF_8))
.append(".jpg.to/");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Log.d("Made url", makeUrlFromWord.toString());
这是日志的一部分:
D/Made url﹕ http://%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82.jpg.to/
W/System.err﹕ java.lang.IllegalArgumentException: Host name may not be null
链接是正确的,我在浏览器中尝试过,它会解码回西里尔符号并正常工作。
【问题讨论】:
-
哪一行抛出了异常?
-
DefaultHttpClient 客户端 = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(urlString); HttpResponse 执行 = client.execute(httpGet);最后一行
-
@RvdK 它的编码之一,必须工作
-
$ curl http://%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82.jpg.to/给curl: (6) Couldn't resolve host '%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82.jpg.to' -
在浏览器中我看到
http://xn--b1agh1afp.jpg.to/和$ curl http://xn--b1agh1afp.jpg.to/给出了` gifzona.ru/i/privet/01.gif" /> `
标签: java android http encoding