先上代碼:
Properties pro = PropertyUtil.getPropertiesInfo("xxx.properties"); String url = pro.getProperty("xxxxxxx"); HttpPost httpPost = new HttpPost(url);
自己在本地開發的時候,一直沒有問題,上了測試環境后一直報錯:
java.net.URISyntaxException: Illegal character in query at index 65
起初我在網上也查了一些這個問題,都說地址中涉及了特殊字符,如‘|’‘&’等。要通過new一個新的url的方式解決(具體不細說了,可自行搜索),我自己也按這種方式改了,
但在執行返回代碼的時候報錯:
Target host must not be null, or set in parameters
HttpResponse response = client.execute(httpPost);
解決先前的問題,又遇到了新的問題,就想會不會解決問題的方式不對,果不其然,打開配置文件xxx.properties,詳細查看一番,發現在配置的地址最后面多了一個空格,
刪除后,解決。
最后,列幾個特殊字符及十六進制值
特殊含義 十六進制值
1.+ 表示空格(在 URL 中不能使用空格) %20
2./ 分隔目錄和子目錄 %2F
3.? 分隔實際的 URL 和參數 %3F
4.% 指定特殊字符 %25
5.# 表示書簽 %23
6.& URL 中指定的參數間的分隔符 %26