java.lang.IllegalArgumentException: Illegal character in query at index 98: http://www.example.com&gmap=25.2600007|55.31000
我正在尝试将GoogleMap的纬度和经度添加到服务器,但我收到非法字符异常。 我需要在纬度和经度之间传递管道符号
@Override
protected void onPreExecute() {
super.onPreExecute();
}
protected String doInBackground(String... args) {
try {
jsonResponseString = jsonParser.makeHttpRequestForAnnouncement(
"http:/example.com"&gmap=" + latlongString,
"POST");
} catch (Exception e1) {
e1.printStackTrace();
}
return null;
}
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog once done
}
和latlongString = String.valueOf(location.getLatitude() + "|"
+ String.valueOf(location.getLongitude()));
答案 0 :(得分:1)
在网址中,管道字符|
应编码为%7C
所以你的例子url:
http://www.example.com&gmap=25.2600007|55.31000
应该是:
http://www.example.com&gmap=25.2600007%7C55.31000
您也可能希望&
成为?
,因为它是第一个url参数。
==>更新:如果您从某些API获取了这个错误的编码网址,那么您可以通过执行字符串替换来修复它,例如:
String urlStr = "http://www.example.com&gmap=25.2600007|55.31000";
String fixedUrlStr = urlStr.replace("|", "%7C")
答案 1 :(得分:0)
有一个' /'在http之后: 需要成为' //'