【问题标题】:problems with Crypt::SSLeay and using HTTPS request?Crypt::SSLeay 和使用 HTTPS 请求的问题?
【发布时间】:2011-10-11 02:53:29
【问题描述】:

我正在尝试通过 HTTPS 连接到网站,方法是发送 WWW::Mechanize 获取请求,每当我尝试运行我的脚本时,我都会收到此错误:

此应用程序无法启动,因为未找到 libeay32_.dll。重新安装应用程序可能会解决此问题

在命令提示符中我得到:

错误 GETing http...: can't load 'C:/strawberry/perl/vendor/lib/auto/Crypt/SSLeay/SSLeay.dll for module Crypt::SSLeay: load_file: The specified module could not be在 ... 找到(Crypt::SSLeay 或 IO::Socket::SSL 未安装)

我不明白这个问题,因为我对使用 Perl 编程非常陌生。 Crypt::SSLeay 已安装,.dll 位于正确的位置,并且 IO::Socket::SSL 也已安装,或者每当我尝试通过 cpan 安装它时,我都会再次收到 libeay 错误。 libeay32_.dll 位于 C:\straberry\c\bin 中。我没有完全访问计算机的权限,因为我是在工作中这样做的。如果有人可以向我解释问题的原因,将不胜感激。

【问题讨论】:

  • “SSLeay.dll”的路径中真的是“Cryot”吗?另外:PATH环境变量中有“C:\straberry\c\bin”吗?
  • 我把它放在了路径中,但我仍然得到错误
  • 将其放入路径后,您必须关闭资源管理器窗口(最好:所有打开的资源管理器窗口)或 cmd 窗口,因为它们保留旧的环境变量,直到进程是新的开始了。也许就是这样。
  • 天哪,确实有效。我的坏我不知道。非常感谢

标签: perl https


【解决方案1】:

我从我的 cmets 中做了一个回答,所以你可以检查这个问题是否已回答:

  • "C:\straberry\c\bin" 添加到PATH-环境变量
  • 关闭资源管理器和/或命令行窗口,因为如果环境发生变化,则不会通知正在运行的进程,从而保持旧环境处于活动状态(好的,在命令行中,您可以通过 set PATH=...new path... 手动应用更新)。

【讨论】:

    【解决方案2】:

    您是否阅读过 LWP 附带的 README.SSL 文件? (WWW::Mechanize 使用 LWP 发出实际的 HTTP 请求)。

    【讨论】:

    • 好的,所以我尝试安装 LWP::Protocol::HTTPS 并收到类似的警告,...libeay32_.dll...
    猜你喜欢
    • 2011-12-23
    • 2013-03-05
    • 2010-09-30
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 2020-10-03
    • 2019-08-16
    • 1970-01-01
    相关资源
    最近更新 更多