python-3.x - 消息:不支持的方法('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()
解决方案
哪个蟒蛇?你的代码是正确的。现在测试它,它发送响应。
我所做的唯一修改是
#message = parse_qs(data)["message"][0]
message = 'hello'
客户端代码:
import requests
res = requests.post('http://localhost:8000/abc', data = {'key':'value'})
print(res)
客户得到200
响应
推荐阅读
- python - 不能在逆矩阵函数(Python 3.6)上将序列乘以“浮点”
- angular - 在 Angular 5 中使用 SwitchMap 订阅
- database - 找出 Neo4j 中 2 个节点之间是否存在路径的最佳方法是什么?
- c# - 如何检查字符串的内容及其长度?
- python - 使用模态运算符的 Python 网络解码
- android - 如何在 Sketchware webview 应用程序上修复 net::ERR_UNKNOWN_URL_SCHEME?
- c# - 无法弄清楚如何根据两个数字返回三个值之一
- html - Bootstrap 4中心图像但文本左对齐
- kubernetes - Pods readiness check 运行后失败,为什么新的 Pod 没有启动?
- c# - 如何从 JArray 中选择元素的值