Python 3.6 BaseHTTPRequestHandler不响应请求

时间:2019-04-11 15:06:49

标签: python basehttprequesthandler

我有一个简单的python服务器脚本,可以有条件地响应发布请求。但是没有发送回复

已搜索堆栈溢出并在线查找相同行为的示例

from http.server import BaseHTTPRequestHandler
import json
verb_id = "http://id.tincanapi.com/verb/rated"
print('starting')

def respond(statement):
     email = statement["actor"]["mbox"]
     verb = statement["verb"]["id"]
     response = statement["result"]["response"]
     return ('Recieved statement from {email}, verb: {verb} with response: {response}'.format(email=email, verb=verb, response=response))

class RestHTTPRequestHandler(BaseHTTPRequestHandler):

    def do_POST(self):
        content_len = int(self.headers.get('Content-Length'))
        post_body = self.rfile.read(content_len)
        parsed_body = json.loads(post_body)
        verb = parsed_body["statement"]["verb"]["id"]
        if (verb == verb_id):
            response = respond(parsed_body["statement"])
            self.wfile.write(response.encode("utf-8"))
        else:
            print('recieved statement without rated')
            self.wfile.write("Not processed".encode("utf-8"))
        self.send_response(200)
        self.end_headers()
        return

httpd = HTTPServer(('0.0.0.0', 8025 ), RestHTTPRequestHandler)
while True:
    httpd.handle_request()

日志显示 127.0.0.1 - - [11/Apr/2019 15:56:03] "POST / HTTP/1.1" 200 -

每次请求后,邮递员给我“无法得到任何答复”

我希望所有发帖请求都得到200,并且if语句返回状态(响应函数的结果或“未处理”)

我正在使用Python 3.6

预先感谢

0 个答案:

没有答案