4
  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent in=getIntent();

        Uri uri=in.getData();

            // l.setText(uri.toString());
             String p=uri.getQueryParameter(OAuth.OAUTH_VERIFIER);
             CreateFolderActivity.m_provider.setOAuth10a(true);
             try {
                CreateFolderActivity.m_provider.retrieveAccessToken(p);
            } catch (OAuthMessageSignerException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (OAuthNotAuthorizedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (OAuthExpectationFailedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (OAuthCommunicationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
             URL url = null;
                try {
                    url = new URL("http://api.mendeley.com/oapi/library/folders?consumer_key=" + CreateFolderActivity.m_consumer_key);


                } catch (MalformedURLException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                HttpURLConnection hc=null;
                try {
                    hc=(HttpURLConnection)url.openConnection();
                    try {CreateFolderActivity.m_consumer.sign(hc);

                        hc.setRequestMethod("POST");
                        hc.setDoInput(true);
                        hc.setDoOutput(true);
                        hc.setUseCaches(false); 

                        hc.setRequestProperty("Content-type","text/json; charset=utf-8"); 
                        OutputStreamWriter wr = new OutputStreamWriter(hc.getOutputStream());
                        wr.write("folder = {'name' : 'Test creation folder'}");

                        wr.flush();

                        // Get the response
                     /*   BufferedReader rd = new BufferedReader(new InputStreamReader(hc.getInputStream()));
                        String strResponse = null;
                        for (String strLine = ""; strLine != null; strLine = rd.readLine()) 
                            strResponse += strLine ;*/
                        Log.i("HelloWorld",hc.getResponseMessage()+"    "+hc.getResponseCode());
                    } catch (OAuthMessageSignerException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (OAuthExpectationFailedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }


  }
  }`

hi i am trying to send a json Object using post method here above is code but i am getting internal server error 500.i read its appear when u send some unexpected data.Actually its an OAuth implementation and i have to add a folder in the user account.and i retrieve access token successfully.please suggest what is wrong in code

1 Answer 1

9
  • "folder = {'name' : 'Test creation folder'}" is invalid JSON. JSON Strings must be enclosed with double-quotes ("). I think you meant this:

    {
        "folder": {
            "name": "Test creation folder"
        }
    }
    
    1. Refer to the JSON specification.
    2. Validate your JSON.
    3. Pretty print your JSON.
  • The correct JSON mime type is application/json.

  • Don't build your JSON by hand. Use the org.json package. Start by looking at JSONObject and JSONArray.

Example:

hc.setRequestProperty("content-type","application/json; charset=utf-8"); 
OutputStreamWriter wr = new OutputStreamWriter(hc.getOutputStream());
JSONObject data = new JSONObject().put("folder",
                  new JSONObject().put("name", "test creation folder"));
wr.write(data.toString());
Sign up to request clarification or add additional context in comments.

1 Comment

@SahilMuthoo can you please check my question [stackoverflow.com/questions/42024158/…

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.