2015-02-05 2 views
0

Я кодирую некоторые параметры URL, и URL-адрес становится правильным, но я все равно получаю java.lang.IllegalArgumentException. Вот мой код:Закодированный 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 

Ссылки правильно, я попробовал это в браузере, он декодирует обратно в символы кириллицы и работы.

+0

И какая линия бросил исключение? – immibis

+0

DefaultHttpClient client = new DefaultHttpClient(); HttpGet httpGet = новый HttpGet (urlString); HttpResponse execute = client.execute (httpGet); последняя строка –

+0

@RvdK его закодированная, она должна работать –

ответ

0

Это работает для меня. Преобразование "привет.jpg.to" в "http://xn--b1agh1afp.jpg.to/" благодаря @ 18446744073709551615

makeUrlFromWord.append("http://") 
    .append(IDN.toASCII(splittedUrl.get(0))) 
    .append(".jpg.to/"); 
Смежные вопросы