Perl 将Cookie与REST::Client一起使用

Perl 将Cookie与REST::Client一起使用,perl,api,rest,http-headers,Perl,Api,Rest,Http Headers,我试图让REST::Client在其请求中使用cookies。因此,我将其设置为: my $cookie_jar = HTTP::Cookies->new( file => "lwp_cookies.dat", autosave => 1 ); my $ua = LWP::UserAgent->new( cookie_jar => $cookie_jar ); my $client = REST::Client->new({ useragent => $

我试图让REST::Client在其请求中使用cookies。因此,我将其设置为:

my $cookie_jar = HTTP::Cookies->new( file => "lwp_cookies.dat", autosave => 1 );
my $ua = LWP::UserAgent->new( cookie_jar => $cookie_jar );
my $client = REST::Client->new({ useragent => $ua, host => $BASE_API_URL });
但当我执行
$client->GET()
$client->PUT
调用时,不会传递cookie头,也不会在磁盘上创建cookie文件。我还尝试为LWP::UserAgent->new()添加
keep_alive=>1
选项,但我的连接头仍然是
Connection:TE,close


我正在用Fiddler/“raw”选项卡检查请求。我缺少什么?

我喜欢用它来调试这种东西。您可以使用Data::Printer和使用Data::Printer添加处理程序(request\u prepare=>sub{my($request,$ua,$h)=@;p$request}),
use Data::Printer{class=>{expand=>'all'}
您确定有cookies吗?或者您是否准备了
lwp\u cookies.dat
文件以包含一些?@simbabque,当我使用Postman工具执行相同的请求时,返回了ASP.NET\u会话ID cookie。也许服务器会查看useragent字符串?邮递员是一个浏览器扩展,对吗?服务器可能会给您一个带有Postman的会话cookie,因为它认为您是一个web浏览器,但当您标识为Perl LWP某物时就不会了。需要那个饼干吗?对于RESTAPI来说,cookie并不典型。如果服务器不发送cookie,它就不会将任何cookie放回cookie罐中。如果罐子是空的,它就不会发送饼干。祝你好运,把剩下的都搞定。:)我喜欢用它来调试这种东西。您可以使用Data::Printer和使用Data::Printer添加处理程序(request\u prepare=>sub{my($request,$ua,$h)=@;p$request}),
use Data::Printer{class=>{expand=>'all'}
您确定有cookies吗?或者您是否准备了
lwp\u cookies.dat
文件以包含一些?@simbabque,当我使用Postman工具执行相同的请求时,返回了ASP.NET\u会话ID cookie。也许服务器会查看useragent字符串?邮递员是一个浏览器扩展,对吗?服务器可能会给您一个带有Postman的会话cookie,因为它认为您是一个web浏览器,但当您标识为Perl LWP某物时就不会了。需要那个饼干吗?对于RESTAPI来说,cookie并不典型。如果服务器不发送cookie,它就不会将任何cookie放回cookie罐中。如果罐子是空的,它就不会发送饼干。祝你好运,把剩下的都搞定。:)