查询android中的非法字符

时间:2014-03-16 14:12:31

标签: android

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()));

2 个答案:

答案 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之后: 需要成为' //'