gpt4 book ai didi

perl - 我可以在 WWW::Mechanize 的 POST 中将空格编码为 %20 吗?

转载 作者:可可西里 更新时间:2023-11-01 16:22:36 25 4
gpt4 key购买 nike

我正在使用 WWW::Mechanize做一些标准的网站遍历,但有一次我必须构建一个特殊的 POST 请求并将其发送出去。所有这些都需要 session cookie。

在我发出的 POST 请求中,空格被编码为 + 符号,但我需要将它们编码为 %20。

我不知道如何改变这种行为。我意识到它们是等价的,但出于我无法控制的原因,这是我必须要做的。

感谢您的帮助。

最佳答案

这是在 URI::_query::query_form() 中硬编码的.它将空格转换为 +。

 $val =~ s/ /+/g;

然后它用连接的对调用 URI::_query::query,其中唯一的 + 符号应该是编码的空格。最简单的做法可能是使用 Hook::LexWrap 拦截对 URI::_query::query 的调用。 ,在调用开始之前修改参数,以便您可以将 + 转换为 %20,然后从那里继续。

更烦人的是重新定义 URI::_query::query。它并不长,您只需要在子程序的开头添加一些代码,以便在继续之前转换参数。

或者,您可以在另一侧修复损坏的解析器。 :)

我在 Mastering Perl 中有几章是关于处理方法覆盖和动态子例程的。 .诀窍是在不更改原始来源的情况下执行此操作,这样您就不会给其他人带来新问题。

关于perl - 我可以在 WWW::Mechanize 的 POST 中将空格编码为 %20 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1387112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com