6

今天我发现自己需要一个简单的 HTTP 服务器,它可以记录/打印出它所知道的关于请求的所有内容,并以一些虚拟回复(用于调试)进行响应。令人惊讶的是,我找不到任何阅读工具来使用它——我错过了什么吗?

Python 的 SimpleHTTPServer 模块看起来很有前途,也许有一种非常快速的方法可以使用它转储整个请求?

我需要它在本地运行。

4

4 回答 4

7

从谷歌上的一些快速搜索看来,最简单的方法是子类化 SimpleHttpServer 并记录你想看到的任何内容。

看起来很容易

class ServerHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):

    def do_GET(self):
        logging.error(self.headers)
        # whatever else you would like to log here
        SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)

Handler = ServerHandler

httpd = SocketServer.TCPServer(("", PORT), Handler)

print "serving at port", PORT
httpd.serve_forever()

此外,您可以拥有do_GETdo_POST返回您想要的任何“虚拟”回复。

于 2012-10-08T16:53:49.300 回答
6
ruby -r sinatra -e "get('/') { puts params.inspect }"

文档:http ://www.sinatrarb.com

Ruby 简单而灵活,它允许您快速模拟任何回复。

于 2014-10-24T15:25:52.663 回答
0

Turq适用于这种目的。它是用 Python 编写的,使用简单但广泛、灵活,甚至还有一个 GUI。Turq 的开发者是这样描述它的:

Turq 是一个小型 HTTP 服务器,可以使用基于 Python 的语言编写脚本。使用它来设置以您选择的状态、标头和正文响应的模拟 HTTP 资源。Turq 专为快速交互式测试而设计,但也可用于自动化场景。

它也有很好的文档

警告:虽然 Turq 非常有用,但它的作者已经停止维护它,而是推荐mitmproxy;mitmproxy 也有一个 Python API。

于 2019-06-29T15:54:42.650 回答
-1

嗨,看看 github 上的 ReturnToSender,它是一个在本地运行的模拟 http 服务器。不是网络托管的。使用您的模拟数据响应 http 客户端并显示客户端请求详细信息。

https://github.com/stephenhealey86/ReturnToSender

支持 GET、POST、PUT、PATCH、DELETE 请求类型和 JSON、TEXT、JavaScript、XML、HTML 内容类型。

于 2019-07-07T08:46:45.100 回答