2017-07-24 5 views
-1

J'essaie de tester les requêtes HTTP de base dans mon API de repos simple en utilisant le framework Flask en Python. La méthode GET a très bien fonctionné, pas encore la méthode POST. voici la route:Je ne peux pas envoyer de requt POST à ​​mon application Python FLASK de base

@app.route('/lang', methods=['POST']) 
def addOne(): 
    language = {'name' : request.json['name']} 
    languages.append(language) 
    return jsonify({'languages' : languages}) 

Mes langues dictionnaire:

languages = [{'name' : 'JavaScript'},{'name' : 'Java'}, {'name' : 'Python'}] 

Je suis en train d'utiliser l'application Postman pour poster une nouvelle langue dans le dictionnaire, est la demande ici:

http://127.0.0.1:8080/lang 

Et dans le corps, j'ai rangé ceci:

{"name" : "C++"} 

Il me donne cette erreur:

File "/home/pi/IoT_api/restful.py", line 22, in addOne 
    language = {'name' : request.json['name']} 
TypeError: 'NoneType' object has no attribute '__getitem__' 
+2

Avez-vous dit postier à envoyer un en-tête de type de contenu JSON? –

+0

@DanielRoseman Oui – Hussein

+1

Quels en-têtes envoyez-vous? –

Répondre

0

Le documentation dit clairement:

If the mimetype is application/json this will contain the parsed JSON data. Otherwise this will be None.

Alors assurez-vous de définir correctement l'en-tête 'Content-Type' avec Postman