程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用 perl 模块 LWP::UserAgent 指定存储在文件中的 cookie大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何使用 perl 模块 LWP::UserAgent 指定存储在文件中的 cookie?

开发过程中遇到如何使用 perl 模块 LWP::UserAgent 指定存储在文件中的 cookie的问题如何解决?下面主要结合日常开发的经验,给出你关于如何使用 perl 模块 LWP::UserAgent 指定存储在文件中的 cookie的解决方法建议,希望对你解决如何使用 perl 模块 LWP::UserAgent 指定存储在文件中的 cookie有所启发或帮助;

我有以下一段代码,它使用从另一个 perl 程序收集的 cookie 使用 perl 模块 LWP::UserAgent 登录到 sharepoint 网站。

use Strict;
use warnings;
use LWP::UserAgent;
use http::request::Common;
use http::cookieJar::LWP ();
use http::cookies;

my $resultXML='C:\Docs\Result.txt';
my $url="https://[mydomain].sharepoint.com/_API/contexTinfo";
        
my $cookie_jar_obj = http::cookies->new();
$cookie_jar_obj->load( $resultXML );
my $lwp = LWP::UserAgent->new();
$lwp->cookie_jar( $cookie_jar_obj ); 
        
print $lwp->cookie_jar->as_String() . "\n";

my $response = $lwp->request(POST $url);
print $response->content . "\n";

其中存储在变量 $resultXML 中的文件包含以下 cookie 信息:

#LWP-cookies-1.0
Set-cookie3:rtFa=UROIhi84Sxr8o0DZHximQjlCOUI2QzItMzRDMC00N0Q1LTgyQ0EtMzI1MzhCRjNERTZDjQiIQbx0/QTRCNtpvjQTaZEcjpYFSkKHsPK+d1Nlnx6MuaDI/Xs21W7orysOeYPRRoDCCX/3ZtL61T3SHYfMkPeqXTJ4rloliGHsN7tuQXeI6OYAXXs8ysayP4VzpJyQEm+S0zvjkVLLtanQ5RDfQ1bnYq9ayu7L5HDJDNaKQhmhXmTdoDWTlvwJRRyWgLL/GCuWWyAXEppy9Ta7PzpO76sb9c91ssScjDJY/Fw7TIPipleMgjjnHud1Os/NAihtTxTMWxS5XpiZbCh6DtvPwYyZXE54nsyhIEkRvrixFQ0PeZinWpAkUAAAA=; domain=sharepoint.com; path=/; SameSite=None; secure; httpOnly;FedAuth=77u/PD94bWwgdmVyc2lvbj0wIiBlbmNvZgluZz0IDXrmlTgiPz48U1A+VjksMGguZnxtZW1iZXJzaGlwfDEwMDNiZmZkOWUwNzg1MmVAbGl2ZS5jb20sfGFnb3R0c0B0bG1seW9ulm9ubWljcm9zb2Z0LmNvbSwxMzI2MDYzNzYxMjAwMDAwMDAsMTMymzk3ODg0ODcwMDAwMDAwLDEzMjYwNzI0MDEzMzA3NjA2MSwwLjAuMC4wLdisYjliOWI2YzItMzRjMC00N2Q1LTgyY2EtMzI1MzhiZjNkZTZjLCwsMGU4ZmUtYTliZS00OGI2LWEzYTgtymM5OGViZjQ0ZDM1LDIyZdhlOGZlLWE5ymUtNDhiNi1hM2E4LWJjOThlymY0NGQzNSwsMCwwLDAsLCwsMjY1MDQ2NsLCwscjeyUzEwdzJWT2ZknxVFRWVLWFBwUUxRYnIrdnP6QnM2R2hnMGQxOTlzcGZ1SnBpSWx0S2pvZmJsVnVVY2FzUzd0TkxVOUxlcklZenA1cndPymhMeDJ0V2pnUmZIDElnSVZRQnZWSGxZWlVocTBpN3lyWkVkMHNnRjFvVTAwY1B3Qmt2WUdrrdZkK2Z3NzRjFCWFFvSjBDb0d4UXVYd01DT2tQb0RhWEdDQkdVbmt2Si9Bc3BCbm5Jb1JXSUxBRjgrZ2JLTjU3RURGbFU0V09XZGdiZFdxM3JLVWg5aGs5NnhRRXVad25laXphRjR3STlkejJvTEROYnA0NDNZWm8rZXN6ymlLR2tqdkhBRGx2L1B5SjllRlBDNHhtNS9qVkQ2NUtSUk9YYnN4MEhxNnjsVVdzVHhPdzU5VXJ1M2lBPT08L1NQPg==; path=/; SameSite=None; secure; httpOnly;

如果我将这些信息从“rtFA=”部分开始复制并粘贴到“高级 REST 客户端”Chrome 扩展中,我会得到成功的响应。

但是在打印条目时

$lwp->cookie_jar->as_String()

在结果中有额外的双引号字符。即

Set-cookie3:rtFa="UROIhi84Sxr8o0DZHximQjlCOUI2QzItMzRDMC00N0Q1LTgyQ0EtMzI1MzhCRjNERTZDjQiIQbx0/QTRCNtpvjQTaZEcjpYFSkKHsPK+d1Nlnx6MuaDI/Xs21W7orysOeYPRRoDCCX/3ZtL61T3SHYfMkPeqXTJ4rloliGHsN7tuQXeI6OYAXXs8ysayP4VzpJyQEm+S0zvjkVLLtanQ5RDfQ1bnYq9ayu7L5HDJDNaKQhmhXmTdoDWTlvwJRRyWgLL/GCuWWyAXEppy9Ta7PzpO76sb9c91ssScjDJY/Fw7TIPipleMgjjnHud1Os/NAihtTxTMWxS5XpiZbCh6DtvPwYyZXE54nsyhIEkRvrixFQ0PeZinWpAkUAAAA="; domain=sharepoint.com; path=/; SameSite=None; secure; httpOnly;FedAuth="77u/PD94bWwgdmVyc2lvbj0wIiBlbmNvZgluZz0IDXrmlTgiPz48U1A+VjksMGguZnxtZW1iZXJzaGlwfDEwMDNiZmZkOWUwNzg1MmVAbGl2ZS5jb20sfGFnb3R0c0B0bG1seW9ulm9ubWljcm9zb2Z0LmNvbSwxMzI2MDYzNzYxMjAwMDAwMDAsMTMymzk3ODg0ODcwMDAwMDAwLDEzMjYwNzI0MDEzMzA3NjA2MSwwLjAuMC4wLdisYjliOWI2YzItMzRjMC00N2Q1LTgyY2EtMzI1MzhiZjNkZTZjLCwsMGU4ZmUtYTliZS00OGI2LWEzYTgtymM5OGViZjQ0ZDM1LDIyZdhlOGZlLWE5ymUtNDhiNi1hM2E4LWJjOThlymY0NGQzNSwsMCwwLDAsLCwsMjY1MDQ2NsLCwscjeyUzEwdzJWT2ZknxVFRWVLWFBwUUxRYnIrdnP6QnM2R2hnMGQxOTlzcGZ1SnBpSWx0S2pvZmJsVnVVY2FzUzd0TkxVOUxlcklZenA1cndPymhMeDJ0V2pnUmZIDElnSVZRQnZWSGxZWlVocTBpN3lyWkVkMHNnRjFvVTAwY1B3Qmt2WUdrrdZkK2Z3NzRjFCWFFvSjBDb0d4UXVYd01DT2tQb0RhWEdDQkdVbmt2Si9Bc3BCbm5Jb1JXSUxBRjgrZ2JLTjU3RURGbFU0V09XZGdiZFdxM3JLVWg5aGs5NnhRRXVad25laXphRjR3STlkejJvTEROYnA0NDNZWm8rZXN6ymlLR2tqdkhBRGx2L1B5SjllRlBDNHhtNS9qVkQ2NUtSUk9YYnN4MEhxNnjsVVdzVHhPdzU5VXJ1M2lBPT08L1NQPg=="; path=/; SameSite=None; secure; httpOnly;

如果我再次复制并粘贴这些信息,从“rtFA=”部分开始到“高级 REST 客户端”Chrome 扩展中,我会收到错误 403 ForbIDden 错误,这正是我运行其余部分时得到的

后面的代码

打印 $lwp->cookie_jar->as_String() 。 "\n";

声明。

如何阻止 perl 插入这些额外的双引号 (") 标记,这些标记似乎会阻止我的 perl 脚本连接到网站?

解决方法

不要使用 as_String 的结果来获取 cookie 值。这通常不是用于电线。查看 http::Cookies 中的 add_cookie_header 子例程并注意它们不使用 as_String 来计算任何内容。不过,这确实引用了除值之外的所有内容。

我认为您首先需要虑的是您为 http::Cookies 提供了什么。也许变量名中的 XML 只是一个坏名字,但数据不是 XML。如果您弄乱了 Result.txt 中的数据,那么您的问题很早就出现了:

@H_456_5@my $resultXML='C:\Docs\Result.txt';
my $url="https://[mydomain].sharepoint.com/_api/contexTinfo";
        
my $cookie_jar_obj = http::Cookies->new();
$cookie_jar_obj->load( $resultXML );

大佬总结

以上是大佬教程为你收集整理的如何使用 perl 模块 LWP::UserAgent 指定存储在文件中的 cookie全部内容,希望文章能够帮你解决如何使用 perl 模块 LWP::UserAgent 指定存储在文件中的 cookie所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。