我正在製作一個腳本,將一些XML POST到另一臺服務器,但我有一個加singn(+)的問題。這裏是我的代碼:HTTP ::請求和文字%2B
#!/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和其他服務器看到recive值「WS + suHG7Xqk01RaIxm2L/W1L」。
如何發送%2B字面值。
在此先感謝
韋爾奇
尤金嗨結束了,它的工作原理我只能改變:這$ ret->內容(uri_escape( 「xml_request = $ XML」)) ;到$ ret-> content(xml_request = uri_escape($ XML));並且效果很好。 – Welcho 2011-03-22 19:35:45
@ Welcho,@ ikegami更正。 – 2013-12-12 11:37:54