【问题标题】:POST requests gives 405 error on Python flask serverPOST 请求在 Python 烧瓶服务器上给出 405 错误
【发布时间】:2019-08-04 11:56:20
【问题描述】:

我正在尝试使用 python 请求和烧瓶进行 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)

任何想法为什么?谢谢

【问题讨论】:

  • 我觉得你需要@app.route('/order', methods=['POST'])

标签: python flask


【解决方案1】:

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

我已更新服务器 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'}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    相关资源
    最近更新 更多