2016-05-12 6 views
0

Я получаю эту ошибку, когда использую HttpClient. Я просмотрел много ответов от SO, но никто, кажется, не ответил на мои вопросы. Здесь, в URL-адресе, я URLEncoded только сообщение. Я не могу понять мир незаконным характером. Другие ответы имеют особый характер, такой как «{» или «|» в URL. В моем нет никого. Но я получаю исключение. Я нахожусь на своем пути.java.lang.IllegalArgumentException при использовании HttpClient

Вот трассировки стека:

java.lang.IllegalArgumentException: Illegal character in query at index 95:  http://api.alerts.sinfini.com/v3/index.php?method=sms&api_key=XXXXXXXX&to=1234567890&sender=SIDEMO&message=Oyeseva+Registration+Verification+Code%3A+366509&format=json&custom=1,2&flash=0 
    at java.net.URI.create(URI.java:859) 
    at org.apache.http.client.methods.HttpGet.<init>(HttpGet.java:69) 
    at com.oyeseva.messaging.SMSSender.sendSMS(SMSSender.java:58) 
    at com.oyeseva.messaging.SMSSender.send(SMSSender.java:104) 
    at com.oyeseva.messaging.alerts.SendMesssageOrEmail.alertIsAnSMS(SendMesssageOrEmail.java:71) 
    at com.oyeseva.messaging.alerts.SendMesssageOrEmail.run(SendMesssageOrEmail.java:42) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 

Edit: Я использовал URLEncoder кодировать весь URL, но дроссели на наличие ошибок. Также попробовал кодирование только запроса ... этот метод отсутствует ... метод здесь находится в URL-адресе.

ответ

0

выглядит так: попробуйте проанализировать ключ API на значение, подходящее для типа, используемого api_key, но не может разобрать XXXX в этот тип.

0

попробуйте URLEncoder класс для первого кодирования вашего URL. затем введите этот URL-адрес в класс HTTPClient.

String safeUrl = URLEncoder.encode("stringurl", "UTF-8"); 

How URLEncoder Encodes the URL