Ich habe eine Google App Engine-API, die Python und NDB außer HTTP-Response-Code/Fehlerprüfung verwendet. Ich habe etwas Code eingegeben, um 406 zu behandeln (um nur json-Anfragen zu akzeptieren) und 400 Fehler (um zu verhindern, dass ein Benutzer ein erforderliches Feld leer lässt), um die post-Funktion für eine meiner Entitäten, aber jetzt scheint es meinen Code zu zerstören. Dies ist der Code mit dem Fehler enthielt Prüfung:HTTP 406 Response Code Check bricht meine Google App Engine/Python-API
class Task_action(webapp2.RequestHandler):
def post(self):
#Only allows a JSON, if not, then error
if 'application/json' not in self.request.accept:
self.response.status = 406
self.response.status_message = "Not Acceptable, API only supports application/json MIME type"
return
new_task = Task(parent=PARENT_KEY,
name = self.request.get("task_name"),
hours = int(self.request.get("task_hours")),
id = self.request.get("task_name"))
#has error code, since name and hours is required
if name:
new_task.name = name
else:
self.response.status = 400
self.response.status_message = "Invalid request, task name is Required."
if hours:
new_task.hours = hours
else:
self.response.status = 400
self.response.status_message = "Invalid request, task hours is Required."
key = new_task.put()
out = new_task.to_dict()
self.response.write(json.dumps(out))
ich curl verwende es zu testen:
curl --data-urlencode "name=clean" -H "Accept: application/json" http://localhost:15080/task
Ich weiß, dass das Problem in dem Fehler-Code überprüft (alle, wenn else-Anweisungen), denn wenn ich es herausnehme, funktioniert der Curl-Test gut und das Objekt wird korrekt zur Datenbank ndb hinzugefügt. Mit dem Fehlerüberprüfungscode fügt mein Curl-Test das Objekt jedoch nicht wie gewünscht hinzu. Hat jemand eine Idee, warum der Fehlerprüfcode meine Postanweisung bricht? Gibt es eine bessere Möglichkeit, HTTP-Fehlercodes zurückzugeben?
Ich habe versucht, Ihre Code-Formatierung zu beheben, überprüfen Sie bitte, ob es noch Ihren tatsächlichen Code, insbesondere die Einrückung widerspiegelt. –
Vielen Dank für die Formatierung, es sieht viel besser aus! – ChristinaLindsay