sending JSON object using POST Methods
17,474
-
"folder = {'name' : 'Test creation folder'}"
is invalid JSON. JSONStrings
must be enclosed with double-quotes ("
). I think you meant this:{ "folder": { "name": "Test creation folder" } }
The correct JSON mime type is
application/json
.Don't build your JSON by hand. Use the
org.json
package. Start by looking atJSONObject
andJSONArray
.
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());
Author by
ritesh Mehandiratta
Updated on June 09, 2022Comments
-
ritesh Mehandiratta almost 2 years
@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