首页 > 解决方案 > 在 Python 2 HTTP 服务器中创建延迟响应

问题描述

我正在 python 2 中创建一个非常简单的 HTTP 服务器进行测试。

我想在不关闭与服务器的连接或先关闭服务器的情况下随机延迟对 GET 请求的回复。

这是我要修改的当前代码:

# Only runs under Python 2

import BaseHTTPServer
import time
from datetime import datetime

class SimpleRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
    def do_GET(self):
        print "incoming request: " + self.path
        self.wfile.write('HTTP-1.0 200 Okay\r\n\r\n')
        self.wfile.write(modes(self.path))

def run(server_class = BaseHTTPServer.HTTPServer,
    handler_class = SimpleRequestHandler):
    server_address = ('', 80)
    httpd = server_class(server_address, handler_class)
    httpd.serve_forever()

def modes(argument):
    # returns value based on time of day to simulate data
    curr_time = datetime.now()
    seconds = int(curr_time.strftime('%S'))

    if seconds < 20:
        return "reply1"
    elif seconds >= 20 and seconds < 40:
        return "reply2"
    else:
        return "reply3"

run ( )

每次收到 GET 时都会添加延迟,例如,第 3 次或第 4 次,但当延迟超时时,将发送格式正确的响应。

谢谢。

标签: pythonhttptestingserver

解决方案


推荐阅读