Sam-In-TechValens
Sam-In-TechValens

Reputation: 2519

json parsing in blackberry?

I am working on a web-service application using JSON. In performing task I got success in directly fetching JSOn response by hitting the URL.

Now I have a task to request with a request parameter.

enter code here
private void callJSON_Webservice(String method,String paraLastModifiedDate) {
        HttpConnection c=null;
        InputStream is = null;
        String feedURL = Constants.feedURL;
        int rc;

        try{
            JSONObject postObject = new JSONObject();
            postObject.put("CheckLatestDataDate",method);
            postObject.put("LastModifiedDate", paraLastModifiedDate);
            //c = new HttpConnectionFactory().getHttpConnection(feedURL);
            c = (HttpConnection)Connector.open(feedURL + ConnectionManager.getConnectionString());

            // Set the request method and headers
            c.setRequestMethod(HttpConnection.GET);
            c.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
            c.setRequestProperty("Content-Length", "" + (postObject.toString().length() - 2));
            //c.setRequestProperty("method", HttpConnection.GET);

            // Getting the response code will open the connection,
            // send the request, and read the HTTP response headers.
            // The headers are stored until requested.
            rc = c.getResponseCode();

            if (rc != HttpConnection.HTTP_OK){
                throw new IOException("HTTP response code: " + rc);
            }

            is = c.openInputStream();

            String json = StringUtils.convertStreamToString(is);
            object = new JSONObject(json);


        }catch (Exception e) {
            System.out.println(e+"call webservice exception");
        }

    }

With this code I am getting EOF exception. I need to complete this small task as soon as possible. Please help me...! Thanx in advance

Upvotes: 2

Views: 671

Answers (1)

Rupak
Rupak

Reputation: 3674

Try replacing

is = c.openInputStream();

String json = StringUtils.convertStreamToString(is);

with following:

is = c.openInputStream();

StringBuffer buffer = new StringBuffer();
int ch = 0;
while (ch != -1) {
    ch = is.read();
    buffer.append((char) ch);
}

String json = buffer.toString();


Reference: convert StreamConnection to String

Upvotes: 2

Related Questions