问题标签 [lwp-useragent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
767 浏览

perl - Perl 错误:X-Died:块数据后缺少换行符:

尝试使用 LWP::UserAgent 获取网页时出现以下错误

X-Died: Missing newline after chunk data: 'OeXk0Yk1iRVhX.<Lot of this>...pOnR5cGU9InhzOnN' at /usr/share/perl5/Net/HTTP/Methods.pm line 481.

更糟糕的是,它不会一直显示。我可以多次正确“获取”网页。有人可以阐明这个问题吗?它是 Perl 模块中的错误吗?是否有解决此问题的方法?

0 投票
2 回答
213 浏览

perl - 如何故障转移

如果我使用wget从 geonames.org 服务器检索某些内容,它会报告两个 IP 地址,第一个失败但它从第二个获取它:

但不幸的是,我必须通过 perl 使用 LWP::UserAgent 和 HTTP::Request 来访问它。如果第一个失败,我怎样才能让他们尝试第二个 IP?

0 投票
1 回答
2103 浏览

perl - LWP::UserAgent 和 HTTP::Request 用于 POST 请求

在某个脚本中,我试图写这个:

并得到“400 Bad Request”。经过一番阅读,我尝试了这个:

它起作用了,但我认为这两个应该做同样的事情。我在这里想念什么?我是否误解了HTTP::RequestLWP::UserAgent的文档中的某些内容?

有没有办法让 LWP::UserAgent 打印它在做什么?

0 投票
1 回答
189 浏览

mysql - perl lwp useragent 和 mysql 数据下载和更新字符集麻烦

我已经迁移到具有相同 freebsd 系统的新托管服务提供商,并且我的一个 perl 脚本停止正常工作。

它从外部 https 站点下载数据并将其存储在 mysql db 中。数据采用 cp1251 编码,mysql 基础、表和连接中的编码相同。来自 my.cnf:

从 perl 脚本连接到 mysql 时:

所以,我得到这个数据

然后脚本将解析这个 $s 并将结果插入 mysql。当它发生时,编码被破坏!

我发现有趣的是,如果我只是将这些数据写入一个文本文件,然后从这个文件中读取它并将其插入 mysql - 它没有损坏!

当我查看此文本文件时,我看到数据采用 cp1251 编码。

自上次托管以来发生了什么变化:

perl:从 5.10.1 到 5.14.4

libwww:从 5.835 到 6.05

mysql服务器是一样的5.1

更新:哇,刚刚发现了一些东西。如果我用 $res->content() 替换 $res->decoded_content(),一切正常。也许那是因为我正在下载的页面的标题中没有字符集。

我仍然不明白 decoded_content 如何以这种方式与字符串混淆,它看起来像 cp1251 但事实并非如此。一些 utf 标志可能吗?帮助请。

UPDATE2:这是脚本(主要部分):

0 投票
1 回答
443 浏览

perl - LWP 获取大文件下载头丢失

这篇文章是关于与LWP GET 大文件下载相关的工作。该帖子是关于尝试错误地在标头中传递参数时 LWP 的错误。现在我发布我所做的更改以及我如何尝试调试该方法。对于那些对 POST 与 GET 标头形成以及服务器在使用 CGI 包时接收到的内容感兴趣的人来说,这个讨论应该非常有用。这不是在网上很容易找到的信息。

这是我的客户端代码片段:

这是服务器片段(cgi 脚本):

这是 GET 的输出:

这是一个带有 POST 请求的客户端:

这是服务器上的输出,就像以前一样,但现在来自 POST:

简而言之,您可以在 POST 转储中看到“key”/“value”对,即“target => random23”。在 GET 转储中,我没有从我在客户端提交的内容中找到任何键或值。可以解释一下,或者我需要做什么才能在 CGI 脚本中提取键/值对?

0 投票
2 回答
2427 浏览

perl - Perl LWP::UserAgent 在特定服务器上失败 SSL

导致证书无效的响应(如果我禁用主机名验证,服务器会说我需要加密),直到我开始使用Net::SSL

在做我的请求之前,ofc。

目前的模块版本:

还尝试了最新的Crypt::SSLeay但仍然失败(在测试环境中尝试过)。

这只是Crypt::SSLeay库中的限制,在客户端和服务器之间 - 他们可能无法就加密方法达成一致?

我也曾经OpenSSL手动连接到有问题的服务器,它没有问题,没有证书失败等等。

我的问题已经解决了,但不是以一种非常优雅的方式,但我很好奇错误在哪里,因为我花了很长时间试图找到解决方案,以及问题的根源。我将 SSL 请求发送到数百个其他服务器而没有这个问题,但是这台服务器只会回复一条消息,说我需要加密我的请求。

LWP一起Net:SSL支持更多吗?

您将如何尝试追查问题的根源?

编辑:有趣的是这在旧版本的模块中没有发生(它最近工作)。我强烈怀疑它是 LWP 或更新的东西。奇怪的是行为如何在更新中发生这样的变化。

0 投票
1 回答
574 浏览

perl - LWP::UserAgent 的 env_proxy 为非管理员用户提供“访问被拒绝”

环境: - Active Perl 5.16 - Windows 2003 Server - 带有 Windows 身份验证的 IIS 6

我试图在 Perl CGI 脚本中使用 Perl 模块“LWP::Simple”,它对服务器上的“管理员”运行良好(使用 Windows 身份验证,IIS/CGI 环境知道用户 Windows 用户名和我们中的一些人) (像我一样)是服务器上的管理员)。但是,对于我们所有其他的非管理员用户,他们得到的是“指定的 CGI 应用程序因未返回完整的 HTTP 标头集而行为不端”。我将其缩小到“使用 LWP::Simple”这一行;如果线路在,非管理员会收到错误;如果线路中断,任何人都不会出错。

由于这是一个“使用”行,在我看来,在 IIS 下调试错误是不可能的(没有像样的错误日志!),所以我分解了 LWP::Simple 模块(它只使用了很多 LWP::UserAgent 东西) 并创建了以下简单脚本来重现潜在错误:

由于错误没有发生在“使用”行中,我们不会得到可怕的 missing-http-headers 错误,而真正的错误会出现在屏幕上:

这使我可以缩小到一行:

如果该行在代码中,则非管理员的屏幕上会显示“访问被拒绝”字样(管理员不会收到任何错误)。在这两种情况下,脚本的其余部分都可以正常工作,但是这个错误会阻止 LWP::Simple 工作(错误发生在“使用”行中,并给出了 missing-http-headers 错误)。

虽然我的解决方法是不使用 LWP::Simple 而是使用 LWP::UserAgent(跳过“$ua->env_proxy”部分),但我真的很想知道为什么“$ua->env_proxy”给出“访问被拒绝“对于非管理员

谁能帮我解决这个问题?

0 投票
0 回答
79 浏览

perl - 试图忽略本地 SSL 证书

我正在尝试使用 perl 脚本从运行 3rd 方软件的本地计算机中检索信息。我可以用网络浏览器查看它,但我需要自动化它。问题是它似乎不喜欢安装软件时创建的 SSL 证书。

我说没问题。我只会告诉 LWP:UserAgent 忽略证书。嗯...同样的错误。

这是我正在使用的测试脚本...

...这是我得到的回应...

根据我在文档中阅读的内容以及在各种论坛上看到的建议,将“verify_hostname”设置为错误值会导致它忽略无效证书。

关于我所缺少的任何建议?

0 投票
1 回答
6717 浏览

perl - LWP::UserAgent 无法使用 TLS1.1 发布

获取 500 握手错误:443 over https。我发送 XML 的主机服务不支持 TLS 1.2,它们支持 1.0 和 1.1。目前在 CentOS 6 上使用 LWP 6.03。使用下面的代码,他们声称我仍在使用 TLS1.2 发送

发送到主机时是否可以打印 TLS 版本?我可以做些什么来验证我使用的是 TLS1.1 吗?

0 投票
1 回答
193 浏览

arrays - 包含数组引用的 Perl LWP 匿名数组引用作为具有单个元素的数组遇到

我有一个小问题。我正在使用 LWP::useragent 并发布到另一个脚本。在该脚本中,我正在对 json 字符串和匿名数组中传递的多个文件执行一些逻辑。一切都很顺利,直到我尝试将要传递的多个文件推送到一个数组中并将其作为匿名数组中的数组引用传递。

在 catch 脚本中,我读取了从匿名传递到散列的参数。我可以毫无问题地访问 json 字符串传递,例如:

然后我对它进行解码并用它做我想做的事,一切都很好。所以我想我可以像这样访问数组引用:

也试过