2012-11-23 35 views
0

我試圖使用Android到exectue以下REST URL,但我得到以下錯誤,執行REST風格的URL與Android

12月11日至23日:12:32.749:E/AndroidRuntime(709):由引起: java.lang.IllegalArgumentException:如果查詢非法字符在 指數121: http://xxxxxxxxxxxxxxxxx.com/add.php?key=xxxxxxxxxxxx&type=Timbuktu&description=Africa&latitude=16.776767&longitude=-3.006361&private= { 「標籤」: 「測試」}

當我調用相同的URL在瀏覽器中,它的工作原理。任何幫助將apprciated!

+1

URLEncoder.encode(url,「UTF-8」); –

回答

4

第一編碼您的網址,只paramerters部分..

URLEncoder.encode("key=xxxx&type=Timbuktu&description=Africa&latitude=16.776767&longitude=-3.006361&private={\"tag\":\"test\"}", "UTF-8") 
+0

嘿,我只是現在嘗試這個,但從服務器返回{「status」:「error」,「message」:「缺少http請求中的類型參數」}。 – TomSelleck

+0

檢查http://stackoverflow.com/a/4660576/1434631它可能會幫助 – Nermeen

2

你需要URL編碼的URL的參數,如:

String privateParamValue = URLEncoder.encode("{\"tag\":\"test\"}", "UTF-8"); 
String url = "http://xxxx.com/add.php?key=xxxx&type=Timbuktu&description=Africa&latitude=16.776767&longitude=-3.006361&private=" + privateParamValue; 
1

瀏覽器是智能編碼網址在UTF-8。我想你也應該在客戶端做到這一點。

URLEncoder.encode(url, "UTF-8");