有现成的HTTP服务器用于调试吗?

问题描述 投票:0回答:5

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

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

我需要它在本地运行。

python http network-protocols
5个回答
8
投票

从谷歌上的一些快速搜索来看,最简单的方法似乎是子类 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_GET
do_POST
返回您想要的任何“虚拟”回复。


6
投票
ruby -r sinatra -e "get('/') { puts params.inspect }"

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

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


0
投票

Turq 非常适合这种目的。它是用 Python 编写的,使用简单但功能广泛、灵活,甚至还具有 GUI。 Turq 的开发者是这样描述的:

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

它还有良好的文档

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


0
投票

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

https://github.com/stephenhealey86/ReturnToSender

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


0
投票

如果你安装了nodejs:

npx dummy-http-server

这将打开一个简单的 http 服务器,该服务器侦听端口 8080 并将请求打印到 STDOUT。

如果您需要高级选项:

npx dummy-http-server --help
© www.soinside.com 2019 - 2024. All rights reserved.