Ich bin mit Java für die Buchung json Nutzlast auf Leinwand Ruhe Api ApacheHttpClient mitPOST REST API ApacheHttpClient mit
Ich erhalte Fehler: Exception in thread "main" java.lang.RuntimeException: Fehler: HTTP-Fehlercode: 422 .Ich habe den folgenden Link auf Stack-Überlauf bezeichnet POST request to REST API with JSON object as payload
Mein Code ist:
try{
httpClient = HttpClients.createDefault();
httpPost = new HttpPost("https://canvas.instructure.com/api/v1/courses/10300000000000133/assignments/10300000000000860");
List<NameValuePair> headers = new ArrayList<NameValuePair>(); //ArrayList to store header parameters
List<NameValuePair> urlParameters = new ArrayList<NameValuePair>(); //ArrayList to store URL parameters
urlParameters.add(new BasicNameValuePair("query","{\"id\":10300000000000860,\"description\":\"\",\"due_at\":\"2017-04-19T03:59:59Z\",\"unlock_at\":\"2016-04-13T04:00:00Z\",\"lock_at\":\"2016-04-22T03:59:00Z\",\"points_possible\":3,\"grading_type\":\"points\",\"assignment_group_id\":10300000000000297,\"grading_standard_id\":null,\"created_at\":\"2014-06-21T13:50:05Z\",\"updated_at\":\"2016-05-05T23:53:35Z\",\"peer_reviews\":false,\"automatic_peer_reviews\":false,\"position\":1,\"grade_group_students_individually\":null,\"anonymous_peer_reviews\":null,\"group_category_id\":null,\"post_to_sis\":null,\"moderated_grading\":null,\"course_id\":10300000000000133,\"name\":\"Units and Dimensions new\",\"submission_types\":[\"online_quiz\"],\"has_submitted_submissions\":false,\"muted\":false,\"html_url\":\"https://canvas.instructure.com/courses/10300000000000133/assignments/1030~860\",\"has_overrides\":false,\"needs_grading_count\":0,\"integration_id\":null,\"integration_data\":{},\"quiz_id\":10300000000000539,\"anonymous_submissions\":false,\"published\":true,\"unpublishable\":true,\"only_visible_to_overrides\":false,\"locked_for_user\":false,\"submissions_download_url\":\"https://canvas.instructure.com/courses/1030~133/quizzes/1030~539/submissions?zip=1\"}"));
headers.add(new BasicNameValuePair("app-token", "1030~SAD..."));
headers.add(new BasicNameValuePair("Accept", "application/json, text/javascript, */*; q=0.01"));
headers.add(new BasicNameValuePair("X-Requested-With", "XMLHttpRequest"));
for (NameValuePair h : headers)
{
httpPost.addHeader(h.getName(), h.getValue());
}
response = httpClient.execute(httpPost);
if (response.getStatusLine().getStatusCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ response.getStatusLine().getStatusCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(
(response.getEntity().getContent())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
die App Token scheint zu funktionieren .Wie kann ich diesen Fehler zu beheben, muss ich mich einige Server certificares passieren
ich gelernt, dass JSON nicht als Abfrage-Argument übergeben werden soll .Wie kann ich JSON in einer POST-Anforderung übergeben, wo sie richtig analysiert werden kann. –
Sie können ein Beispiel finden Sie [hier] (http://stackoverflow.com/questions/18188041/write-in-body-request-with-httpclient). – brnt