2015-08-10 2 views
0

Я пытаюсь отправить JSON в службу REST, но я всегда получаю HTTP Error 415: Unsupported Media Type.Restlet clientResource post возвращает http error 415

REST Документация ясно отмечает, что я должен использовать application/json, что я и делаю. Конечно, я должен что-то пропустить.

public JSONObject fetchResponse() throws ResourceException, JSONException, IOException { 
    JRRequest jr = new JRRequest(); 

    jr.setJql(jql); 
    jr.setMaxResults(Integer.parseInt(maxresults)); 
    jr.setFields(fields); 

    Gson json = new Gson(); 
    String payload = json.toJson(jr); 


    JSONObject jsObj = new JSONObject(getClientResource(restUri).post(payload,MediaType.APPLICATION_JSON).getText()); 

    return jsObj; 
} 


private ClientResource getClientResource(String uri) { 
    ClientResource clientResource = new ClientResource(uri); 
    Application app = new Application(); 
    clientResource.setChallengeResponse(ChallengeScheme.HTTP_BASIC,username, password); 
    return clientResource; 
} 
+0

У вас есть сервер «Restlet»? или вы отправляете на другой сервер, например «Node» или «PHP»? – megamoth

+0

Публикация на другом сервере, JIRA на самом деле (Tomcat). – rdem

+0

Я пробовал клиент Advanced REST в Chrome, отправляя полезную нагрузку json с помощью приложения/json, и он отлично работает. Таким образом, сервер определенно работает нормально. – rdem

ответ

0

Хорошо, я нашел решение. Вместо того, чтобы делать все это в одной строке, я пробовал это:

Representation rep = new StringRepresentation(payload, MediaType.APPLICATION_JSON); 
    JSONObject jsObj = new JSONObject(getClientResource(restUri).post(rep).getText()); 

И теперь это работает!

+0

Если это решило вашу проблему, я думаю, что вы должны принимайте это как ответ – megamoth

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

  • Нет связанных вопросов^_^