如何解決java.lang.IllegalArgumentException: Illegal character in query at index 的問題?
問題描述
根據keyword向伺服器端api查詢資料時出現此錯誤:
java.lang.IllegalArgumentException: Illegal character in query at index 89:http://ask.c3dn.net?k=如何 解決
原因
Url引數中有特殊字串,上面的引數“k=如何 解決”裡有空格;
解決方案1
客戶端:
url= url.replaceAll(" ", "%20");
其它對應字元:
? : %3F & : %26 | : 4 十六進位制值 1.
+ URL 中+號表示空格 %2B 2. 空格 URL中的空格可以用+號或者編碼 %20 3. / 分隔目錄和子目錄 %2F 4. ? 分隔實際的 URL 和引數 %3F 5. % 指定特殊字元 %25 6. # 表示書籤 %23 7. & URL 中指定的引數間的分隔符 %26 8. = URL 中指定引數的值 %3D
解決方案2
服務端對客戶端傳過來的引數進行編碼:
URLEncoder.encode(keyword)