2016-09-30 1 views
0

Der folgende Code für die meisten Schüler in einem Klassenzimmer arbeitet, wenn sie eine asignment einreichen, aber es löst eine Ausnahme mit einem 400-Fehler für einige der Schüler:ModifyAttachments Aufruf gibt 400 Fehler C# Client-Bibliothek mit

var classroom = GetClassroomService(); 

var studentSubmissionsResponse = classroom.Courses.CourseWork.StudentSubmissions.List(courseId, courseWorkId).Execute(); 
var submission = studentSubmissionsResponse.StudentSubmissions.FirstOrDefault(s => s.AssociatedWithDeveloper ?? false); 

var modifyAttachmentRequest = new global::Google.Apis.Classroom.v1.Data.ModifyAttachmentsRequest(); 

var link = new global::Google.Apis.Classroom.v1.Data.Link() { Url = url }; 
var attachment = new global::Google.Apis.Classroom.v1.Data.Attachment() { Link = link }; 

modifyAttachmentRequest.AddAttachments = new System.Collections.Generic.List<global::Google.Apis.Classroom.v1.Data.Attachment>(); 
modifyAttachmentRequest.AddAttachments.Add(attachment); 

submission = classroom.Courses.CourseWork.StudentSubmissions.ModifyAttachments(modifyAttachmentRequest, courseId, courseWorkId, submission.Id).Execute(); 

/// submission code is after this; the exception is thrown by the call above 

die Ausnahme ist:

The service classroom has thrown an exception: Google.GoogleApiException: Google.Apis.Requests.RequestError 
Request contains an invalid argument. [400] 
Errors [ 
    Message[Request contains an invalid argument.] Location[ - ] Reason[badRequest] Domain[global] 
] 

Leider hat die C# Client-Bibliothek ist nicht die Anzeige von detaillierten Fehlermeldungen noch unterstützen.

Irgendwelche Ideen, was könnte los sein? Wie kann ich Fehler beheben?

Antwort

1

Ein 400 bedeutet, dass die Anforderung falsch war. Mit anderen Worten, der Datenstrom, der vom Client zum Server gesendet wurde, folgte nicht den Regeln.

Also, was ich tun würde, um dies zu beheben, ist Fiddler zu starten, führen Sie den Code und isolieren Sie die Anfrage an den Endpunkt. Vergleichen Sie dann die ungültige Anfrage mit einer gültigen Anfrage und ermitteln Sie den Unterschied.

+0

Ich wünschte, ich könnte das tun. Die Ausnahmen werden ausgelöst, wenn Schüler ihre Aufgaben im (physischen) Klassenraum ausführen. Die Fehlermeldung weist darauf hin, dass ein ungültiges Argument vorhanden ist. In diesem Aufruf ist das einzige Argument, das sich ändert, die URL. Ich habe versucht, die URLs zu verwenden, die mit meinem eigenen Konto fehlschlagen, und sie funktionieren. Also, es ist nicht die URL. Die courseId und courseWorkId arbeiten für andere Studenten. Das lässt nur die submission.Id, aber ich denke, ich bekomme die Einreichung korrekt. –