perl – 窥探不同plack中间件之间的http标头

perl – 窥探不同plack中间件之间的http标头,第1张

概述如果我理解正确,PSGI应用程序将作为下一个: >从浏览器获得请求 >请求通过顺序中的某些中间件“起泡”,因为它们是在构建器中定义的 >请求来到我的应用程序 >我的应用程序产生一些回应 >这通过一些中间件再次响应泡沫 >最后将响应发送到浏览器 当请求登陆我的$app时,我可以轻松地调试打印所有标题(例如cookie). 问题是: 如何通过许多中间件向我的应用程序发出请求,同时响应通过中间件再次出现 如果我理解正确,Psgi应用程序将作为下一个:

>从浏览器获得请求
>请求通过顺序中的某些中间件“起泡”,因为它们是在构建器中定义的
>请求来到我的应用程序
>我的应用程序产生一些回应
>这通过一些中间件再次响应泡沫
>最后将响应发送到浏览器

当请求登陆我的$app时,我可以轻松地调试打印所有标题(例如cookie).

问题是:
如何通过许多中间件向我的应用程序发出请求,同时响应通过中间件再次出现时,如何调试打印标题的实际状态.

所以,有一个(简单的)app.psgi,就像下一个:

use strict;use warnings;use Plack::Builder;my $app = sub { ... };builder {         # <- deBUG-print the first request headers         #                and the last respond headers here    enable "DeBUG";         # <- deBUG-print the actual state of request/respond headers here    enable "mID2";         # <- and here    enable "mID3";         # <- and here    $app; # <- and finally here - this is of course EASY}

它可能不像是那样容易,

print STDERR Dumper $dont_kNow_what->request->headers(); #http::headers ???print STDERR Dumper $dont_kNow_what->respond->headers();

所以加一个赏金:);)

解决方法 中间件

package ShowMeTheheaders;use parent "Plack::MIDdleware";use Plack::Request;use Plack::Responserequire Text::Wrap;my $_call_back = sub {    my $response = Plack::Response->new(@{+shift});    print "* Response headers:\n",Text::Wrap::wrap("\t","\t",$response->headers->as_string);    return; # Explicit return suggested by docs.};sub call {    my $self = shift;    my $request = Plack::Request->new(shift);    print "* Request headers:\n",$request->headers->as_string);    my $response = $self->app->($request);    Plack::Util::response_cb($response,$_call_back);}1;

您可以在没有客观化的情况下执行此 *** 作(Plack::Request和Plack::Response),但是您必须处理标题字段的原始属性和键,而不是完全更愉快的> as_string.另见Plack::Middleware的“响应回调”部分.

演示psgi

use warnings;use strict;use Plack::Builder;my $app = sub {    [ 200,[ "Content-Type" => "text/plain" ],[ "O HAI,PLAK!" ]    ];};builder {    enable "+ShowMeTheheaders";    mount "/" => $app;};
总结

以上是内存溢出为你收集整理的perl – 窥探不同plack中间件之间的http标头全部内容,希望文章能够帮你解决perl – 窥探不同plack中间件之间的http标头所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1255391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存