【发布时间】:2017-05-02 12:47:31
【问题描述】:
我在使用 IO::Socket::SSL 时遇到问题。
在正常操作下一切正常,但我遇到了一个问题,即 Web 服务器 (IIS) 锁定并且 Perl 卡住了,即使在 Web 服务器再次激活后也是如此。
我在 Windows 下将 Perl 脚本作为 exe 运行,但实际上我看不到该程序正在运行,因为它是隐藏的 - 这是代码:
sub api_action
{
$api_action = $_[0];
use IO::Socket::SSL;
$EOL = "\015\012";
$BLANK = $EOL x 2;
$remote = IO::Socket::SSL->new( Proto => "tcp",
PeerAddr => "api.xxxxx",
PeerPort => "443",
SSL_verify_mode => SSL_VERIFY_NONE,
verify_hostname => 0,
Timeout => 120,
);
unless ($remote) { print "cannot connect to API\n"; return "ERROR"
}
$remote->autoflush(1);
print $remote "GET /API/?action=$api_action" . $BLANK;
return <$remote>;
close $remote;
}
我的想法是它已经建立了初始连接,但仍在等待 GET 命令的返回。我原以为设置超时只会导致它返回错误,但它看起来不起作用。
关于我哪里出错或我错过了什么的任何想法?
谢谢
【问题讨论】:
-
不要使用全局变量。
-
@SinanÜnür 你认为这实际上会对我看到的错误产生影响吗?
-
不可能知道。