使用相同的套接字发送HTTP POST,然后发送GET

时间:2014-11-11 17:05:31

标签: xml perl

我正在尝试创建一个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);

1 个答案:

答案 0 :(得分:1)

正如@SteffenUllrich在评论中建议的那样,如果在构造函数中指定LWP选项,则可以强制keep_alive重用单个TCP连接。喜欢这个

my $ua = LWP::UserAgent->new(keep_alive => 1);