首页 > 解决方案 > 消息:不支持的方法('POST')。错误 501 蟒蛇

问题描述

我正在尝试在 udacity 在线学院学习一些 Http Server。问题是以下代码触发了错误消息:不支持的方法('POST')。错误 501 Python:

from http.server import HTTPServer, BaseHTTPRequestHandler
from urllib.parse import parse_qs


class MessageHandler(BaseHTTPRequestHandler):
    def do_POST(self):
        # 1. How long was the message?
        length = int(self.headers.get('Content-length', 0))

        # 2. Read the correct amount of data from the request.
        data = self.rfile.read(length).decode()

        # 3. Extract the "message" field from the request data.
        message = parse_qs(data)["message"][0]

        # Send the "message" field back as the response.
        self.send_response(200)
        self.send_header('Content-type', 'text/plain; charset=utf-8')
        self.end_headers()
        self.wfile.write(message.encode())


if __name__ == '__main__':
    server_address = ('', 8000)
    httpd = HTTPServer(server_address, MessageHandler)
    httpd.serve_forever()

标签: python-3.xhttppostserver

解决方案


哪个蟒蛇?你的代码是正确的。现在测试它,它发送响应。

我所做的唯一修改是

#message = parse_qs(data)["message"][0]
message = 'hello'

客户端代码:

import requests
res = requests.post('http://localhost:8000/abc', data = {'key':'value'})
print(res)

客户得到200响应


推荐阅读