【发布时间】:2016-05-12 12:11:18
【问题描述】:
我在使用 HttpClient 时收到此错误。我看过很多来自 SO 的答案,但似乎没有一个回答我的。 在 URL 中我只对消息进行了 URLEncoded。我无法为世界找出非法字符。其他答案有一个特殊字符,如“{”或“|”在网址中。我的里面没有。然而我得到了例外。我已经束手无策了。
这是堆栈跟踪:
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)
编辑:我使用 URLEncoder 对整个 URL 进行编码,但它会因错误而窒息。还尝试仅对查询进行编码..说该方法丢失了...该方法在 URL 中是 sms。
【问题讨论】:
标签: java character illegalargumentexception