我正在用Plack调试一个HTTP客户端,plack服务器监听端口80,客户端发送请求。如何使用Plack查看客户端请求?我正在尝试这样做:
my $app = sub {
my $self = shift;
[200, ['Content-Type' => 'text/html'], [ $self ]];
};如何调试请求?
发布于 2021-04-06 21:44:53
PSGI/Plack是一个围绕HTTP的抽象。它的目标是不必为实现细节而烦恼(就像没有它一样)。当你的应用程序看到请求的时候,它已经被解析成$env,并且在Plack的表示中。
你可以在Plack::HTTPParser::PP中安装一些小补丁来转储$chunk,看看会有什么东西进来。您必须在您的环境中设置PLACK_HTTP_PARSER_PP=1,以确保它加载的是纯Perl版本。
然而,这似乎真的很乏味。如果你在Linux上,你可以使用netcat (nc)。在您的端口上侦听,并使用您正在测试的客户端在那里发送请求。
$ nc -l 3000
GET / HTTP/1.1
Host: localhost:3000
User-Agent: curl/7.68.0
Accept: */*在另一个终端..。
$ curl localhost:3000如果你不关心确切的表示,而只关心它在解析后是否有正确的东西,那么可以从在你的Plack应用程序中丢弃$env开始。
https://stackoverflow.com/questions/66953217
复制相似问题