投稿リクエストに条件付きで応答する単純な 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を使用しています
前もって感謝します