我正在尝试创建一个Perl脚本,该脚本应该使用XML数据发送HTTP POST请求,然后使用相同的套接字发送HTTP GET请求。
我尝试使用LWP::UserAgent
,但它似乎正在为每个请求创建一个新套接字。
我也尝试使用IO::Socket
,但我不确定如何使用它来发送XML数据。
我的代码:
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request::Common;
my $message = <<'XML';
<includeFilterSets>
<filterSet>
<filter>
<filterName>VERSION_NAME</filterName>
<operator>
<name>In</name>
</operator>
<value>10.0u</value>
</filter>
</filterSet>
</includeFilterSets>
XML
my $webpage = "https://www.test.com/abc/cde.xml";
my $url = "https://www.test.com";
my $ua = LWP::UserAgent->new;
my $response1 = $ua->post($webpage, Content_Type => 'text/xml', Content => $message);
my $response2 = $ua->get($url);
答案 0 :(得分:1)
正如@SteffenUllrich
在评论中建议的那样,如果在构造函数中指定LWP
选项,则可以强制keep_alive
重用单个TCP连接。喜欢这个
my $ua = LWP::UserAgent->new(keep_alive => 1);