我正在尝试使用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)
任何想法为何?谢谢
答案 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'}