POST请求在Python Flask服务器上给出405错误

时间:2019-08-04 11:56:20

标签: python flask

我正在尝试使用python请求和flask执行POST请求,但是服务器给出405错误。

客户:

import json
import requests

payload = {'firstname':'John', 'lastname':'Smith'}

url = 'http://localhost:5000/order'

r = requests.post(url,json=payload)

服务器:

from flask import Flask
app = Flask(__name__)

@app.route('/order', method='POST')
   def getjson():
       print('hello')

当我在客户端尝试此代码时,它工作正常:

r = requests.get('http://localhost:5000/order')
print(r.status_code)

任何想法为何?谢谢

1 个答案:

答案 0 :(得分:0)

Error 405 Method Not Allowed表示来自客户端的请求不是有效的请求格式。可以在Mozilla's documentation on HTTP 405 error code中找到405错误的详细信息。

我更新了服务器Python代码中的错字。还更新了客户端代码以正确发送JSON。

服务器:

from flask import Flask, jsonify, request
app = Flask(__name__)

@app.route('/order', methods=['POST'])
def getjson():
    content = request.json
    return jsonify(content)

客户:

import json
import requests

payload = {'firstname':'John', 'lastname':'Smith'}
url = 'http://localhost:5000/order'
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
r = requests.post(url, data=json.dumps(payload), headers=headers)
print(r.status_code)
print(r.json())

客户端输出:

200
{'firstname': 'John', 'lastname': 'Smith'}