XML を別のサーバーに POST するスクリプトを作成していますが、プラス記号 (+) に問題があります。これが私のコードです:
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
my $XML = qq|
<?xml version="1.0" encoding="UTF-8"?>
<ServiceAddRQ>
<Service code="Ws%2BsuHG7Xqk01RaIxm2L/w1L">
<ContractList>
<Contract>
<Name>CGW-TODOSB2B</Name>
</Contract>
</ContractList>
</Service>
</ServiceAddRQ>
|;
utf8::encode($XML);
my $ua = LWP::UserAgent->new;
$ua->timeout(120);
my $ret = HTTP::Request->new('POST', $XMLurl);
$ret->content_type('application/x-www-form-urlencoded');
$ret->content("xml_request=$XML");
my $response = $ua->request($ret);
属性コードでわかるように、値の文字列には %2B があり、他のサーバーは値 "Ws+suHG7Xqk01RaIxm2L/w1L" を受け取ります。
%2B リテラルを送信するにはどうすればよいですか。
前もって感謝します
ウェルチ