Ich denke an 412 (Vorbedingung fehlgeschlagen), aber vielleicht gibt es einen besseren Standard?
Antworten
Zu viele Anzeigen?Der Status 422 scheint am geeignetsten zu sein, wenn man die spec .
Der Statuscode 422 (Unprocessable Entity) bedeutet, dass der Server den Inhaltstyp der angeforderten Entität versteht (daher ist ein 415(Unsupported Media Type)-Statuscode ist unangemessen), und die Syntax der Anforderungseinheit korrekt ist (daher ist ein 400 (Bad Request) Statuscode unangemessen ist), aber die enthaltenen Anweisungen nicht verarbeiten Anweisungen zu verarbeiten. Diese Fehlerbedingung kann zum Beispiel auftreten, wenn ein XML Request Body wohlgeformte (d.h. syntaktisch korrekte), aber semantisch fehlerhafte XML-Anweisungen enthält.
Sie geben an, dass missgebildetes Xml ein Beispiel für schlechte Syntax ist (was eine 400 erforderlich macht). Ein fehlerhafter Query-String scheint analog dazu zu sein, so dass 400 für einen wohlgeformten Query-String, dem ein Parameter fehlt, nicht angemessen erscheint.
Hinweis: Da sich der obige RFC mit WebDAV befasst, kann es zu dem Missverständnis kommen, dass 422 und einige andere nur im Zusammenhang mit WebDAV verwendet werden dürfen und ihre Verwendung außerhalb von WebDAV "nicht standardisiert" ist. Dies bedeutet jedoch nur, dass diese Statuscodes in der Kontext dieses RFC. Der Wortlaut dieser Definitionen ist so gewählt, dass er nicht spezifisch für WebDAV ist.
Ich bin mir nicht sicher, ob es einen festen Standard gibt, aber ich hätte die 400 Schlechte Anfrage die in der neuesten HTTP-Spezifikation (von 2014) Dokumente wie folgt :
6.5.1. 400 Schlechte Anfrage
Der Statuscode 400 (Bad Request) zeigt an, dass der Server nicht in der Lage ist oder die Anfrage nicht bearbeiten kann oder will, weil er sie für einen Client-Fehler ist (z.B. fehlerhafte Anfragesyntax, ungültiges Request ungültige Anfrage, ungültige Nachrichtenformulierung oder irreführendes Anfrage-Routing).
Le site WCF-API in .NET behandelt fehlende Parameter durch Rückgabe eines HTTP 404
"Endpunkt nicht gefunden"-Fehler, wenn Sie die webHttpBinding .
Le site 404 Not Found
kann sinnvoll sein, wenn Sie den Namen Ihrer Webdienst-Methode zusammen mit ihrer Parametersignatur betrachten. Das heißt, wenn Sie eine Webdienstmethode exponieren LoginUser(string, string)
und Sie beantragen LoginUser(string)
Letzteres wird nicht gefunden.
Im Grunde würde dies bedeuten, dass die von Ihnen aufgerufene Webdienstmethode zusammen mit der von Ihnen angegebenen Parametersignatur nicht gefunden werden kann.
10.4.5 404 Nicht gefunden
Der Server hat nichts gefunden, was der Request-URI entspricht. Keine wird angegeben, ob der Zustand vorübergehend oder dauerhaft ist.
Le site 400 Bad Request
als Gert schlug vor ist nach wie vor ein gültiger Antwortcode, aber ich denke, er wird normalerweise verwendet, um Probleme auf niedrigerer Ebene anzuzeigen. Er könnte leicht als eine fehlerhafte HTTP-Anfrage interpretiert werden, vielleicht fehlende oder ungültige HTTP-Header oder ähnliches.
10.4.1 400 Schlechte Anfrage
Die Anfrage konnte vom Server nicht verstanden werden, weil die Syntax. Der Client SOLLTE die Anfrage NICHT ohne Änderungen Änderungen wiederholen.
- See previous answers
- Weitere Antworten anzeigen