2011-09-06 3 views
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(); 
       } 


    } 
    }` 

Привет Я пытаюсь отправить JSON объект, используя метод пост здесь выше код, но я получаю внутренняя ошибка сервера 500.i прочитать его появляются, когда и отправить некоторые неожиданные data.Actually его реализация OAuth и я должен добавить папку в потребителе account.and я получить маркер доступа successfully.please предполагают, что это неправильно в кодеотправка объект JSON с использованием методов POST

ответ

9
  • "folder = {'name' : 'Test creation folder'}" недействителен JSON. JSON Strings должен быть заключен в двойные кавычки ("). Я думаю, что вы имели в виду это:

    { 
        "folder": { 
         "name": "Test creation folder" 
        } 
    } 
    
    1. Refer to the JSON specification.
    2. Validate your JSON.
    3. Pretty print your JSON.
  • Правильный тип Mime JSON - application/json.

  • Не строите свой JSON вручную. Используйте пакет org.json. Начните с просмотра JSONObject и JSONArray.

Пример:

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

привет Спасибо за ответ теперь его работы. –

+0

@SahilMuthoo вы можете проверить мой вопрос [http://stackoverflow.com/questions/42024158/how-to-access-github-graphql-api-using-java] –

Смежные вопросы