You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻找支持SNI的Net::SSLeay->get_https()替代Perl模块

推荐的Perl高层模块方案

1. LWP::UserAgent

这是Perl生态中最常用的HTTP客户端高层模块,底层基于IO::Socket::SSL,天然支持SNI,无需深入SSL细节。你可以用它替代Net::SSLeay->get_https(),调用方式简洁,参数适配性强:

use LWP::UserAgent;

my $ua = LWP::UserAgent->new;
# 多数场景下模块会自动根据host设置SNI,需手动指定时添加以下配置
$ua->ssl_opts(
    SSL_hostname => '目标域名',
);

# POST请求示例,对应原get_https的host、path、port、数据字段
my $response = $ua->post(
    "https://目标域名:端口/path",
    Content => {
        key1 => 'value1',
        key2 => 'value2',
    },
);

if ($response->is_success) {
    print $response->content;
} else {
    die $response->status_line;
}

如果是GET请求,直接替换为$ua->get()即可,参数逻辑和原调用一致。

2. HTTP::Tiny

轻量级的高层HTTP客户端,底层同样支持SNI,代码更简洁,适合对资源占用有要求的场景:

use HTTP::Tiny;

my $http = HTTP::Tiny->new(
    SSL_options => {
        SSL_hostname => '目标域名',
    },
);

# POST表单请求示例,对应原参数
my $response = $http->post_form(
    "https://目标域名:端口/path",
    { key1 => 'value1', key2 => 'value2' }
);

if ($response->{success}) {
    print $response->{content};
} else {
    die "$response->{status} $response->{reason}";
}

GET请求直接使用$http->get(),参数逻辑与原调用匹配。

3. 基于Net::SSLeay的半高层改造(无需换模块)

如果不想替换原有模块,可以手动用Net::SSLeay的API构造请求并设置SNI,仅需少量改动即可保留原有核心依赖:

use Net::SSLeay;

Net::SSLeay::initialize();

# 创建socket并连接目标服务器
my ($socket, $ctx) = Net::SSLeay::open_tcp('目标域名', 端口);
Net::SSLeay::set_servername($socket, '目标域名'); # 设置SNI

# 构造HTTP请求,对应原get_https的path和数据字段
my $request = "POST /path HTTP/1.1\r\n";
$request .= "Host: 目标域名\r\n";
$request .= "Content-Type: application/x-www-form-urlencoded\r\n";
my $data = 'key1=value1&key2=value2';
$request .= "Content-Length: " . length($data) . "\r\n";
$request .= "\r\n";
$request .= $data;

Net::SSLeay::write($socket, $request);
my $response = Net::SSLeay::read($socket);
print $response;

Net::SSLeay::close($socket);
Net::SSLeay::cleanup();

内容的提问来源于stack exchange,提问作者DougJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:40:23