我正在尝试使用 VMware Perl 库(它似乎在 ESXi 主机上调用 SOAP 服务)编写 Linux 机器和 ESXi 主机之间的一些交互。
我收到一个我找不到解决方案的错误:Undefined subroutine &LWP::Protocol::https::Socket::can_read called at /usr/local/share/perl5/LWP/Protocol/http.pm line 22
我目前正在运行 Net-HTTP-6.03。我确实尝试过使用 Net-HTTP-6.05,但它使基于 Web 的调用非常慢(随后的调用也最终失败,而不是大约 1.2MB 的 XML 作为错误消息)——各种论坛建议只能通过还原来解决到 6.03(通过cpan install GAAS/Net-HTTP-6.03.tar.gz
)。
我的代码的症结如下:
use VMware::VIRuntime;
my $context = {
options => ParseOptions(), # result of using GetOpts::Long to parse command-line
session => undef
};
$ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS} = "Net::SSL"; # Suppresses SSL_VERIFY_NONE
if ($context->{options}->{'ignore-ssl-errors'}) {
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0; # Ignores certificate errors
}
## next line fails
$context->{session} = Vim::login(
service_url => $context->{options}->{url},
username => $context->{options}->{username},
password => $context->{options}->{password}
);
我(可以|需要)做些什么来让它工作吗?