1

I m getting json from URL but getting error in parsing. It is saying illegal character. Can you guys point out where is the culprit? MyCode

public String GetJString(String url) {

    // Making HTTP request
    try {
        // defaultHttpClient
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);

        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();          

    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        json = sb.toString();
    } catch (Exception e) {
        Log.e("Buffer Error", "Error converting result " + e.toString());
    }

    Log.d("cstch",json);

        return json;

}

Error Message

04-08 15:26:43.393: E/AndroidRuntime(1122): FATAL EXCEPTION: AsyncTask #2
04-08 15:26:43.393: E/AndroidRuntime(1122): java.lang.RuntimeException: An error occured while executing doInBackground()
04-08 15:26:43.393: E/AndroidRuntime(1122):     at android.os.AsyncTask$3.done(AsyncTask.java:299)
04-08 15:26:43.393: E/AndroidRuntime(1122):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
04-08 15:26:43.393: E/AndroidRuntime(1122):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
04-08 15:26:43.393: E/AndroidRuntime(1122):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
04-08 15:26:43.393: E/AndroidRuntime(1122):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
04-08 15:26:43.393: E/AndroidRuntime(1122):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
04-08 15:26:43.393: E/AndroidRuntime(1122):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
04-08 15:26:43.393: E/AndroidRuntime(1122):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
04-08 15:26:43.393: E/AndroidRuntime(1122):     at java.lang.Thread.run(Thread.java:856)
04-08 15:26:43.393: E/AndroidRuntime(1122): Caused by: java.lang.IllegalArgumentException: Illegal character in query at index 124: http://smkamran.com/~tvinfo/tvguide/box/getprogramlist?mediagroupId=9c476522-d771-4fcd-ae21-34b302c04e46&dateBegin=2013-04-08 00:00:00&dateEnd=2013-04-08 23:59:00&channelList=RBB
04-08 15:26:43.393: E/AndroidRuntime(1122):     at java.net.URI.create(URI.java:727)
04-08 15:26:43.393: E/AndroidRuntime(1122):     at org.apache.http.client.methods.HttpPost.<init>(HttpPost.java:79)
04-08 15:26:43.393: E/AndroidRuntime(1122):     at com.smkamran.germantv.JSONParser.GetJString(JSONParser.java:80)
04-08 15:26:43.393: E/AndroidRuntime(1122):     at com.smkamran.germantv.ChannelDetails$GetDataFromServer.doInBackground(ChannelDetails.java:267)
04-08 15:26:43.393: E/AndroidRuntime(1122):     at com.smkamran.germantv.ChannelDetails$GetDataFromServer.doInBackground(ChannelDetails.java:1)
04-08 15:26:43.393: E/AndroidRuntime(1122):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
04-08 15:26:43.393: E/AndroidRuntime(1122):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
7

2 Answers 2

3

As per the error message, it's an illegal character in the querystring part your URL. You should use URLEncoder.encode() on that URL.

Sign up to request clarification or add additional context in comments.

Comments

0

Your JSON is not valid .

Got following error

Error: Parse error on line 1: ...1658","description":"(1658)Simones Wide -----------------------^ Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'

Some brackets are missing at this point .

1658","description":"(1658) Simones Widerstand gegen\u00fcber David br\u00f6ckelt.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.