1

投稿リクエストに条件付きで応答する単純な 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 -

各リクエストの後、Postman から「応答がありませんでした」と表示される

すべてのポスト リクエストに対して 200 が返され、if ステートメントからステータスが返されることが予想されます (respond 関数の結果または「未処理」のいずれか)。

私はPython 3.6を使用しています

前もって感謝します

4

0 に答える 0