일부 스크립트를 다른 서버에 POST하는 스크립트를 만들고 있지만 플러스 (+) 문제가 있습니다. 당신이 값이 "WS + suHG7Xqk01RaIxm2L/W1L을"받아 봐 값 문자열 %의 2B와 다른 서버를 가지고있는 속성을 코드에서 볼 수 있듯이HTTP :: Request 및 리터럴 % 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 리터럴을 보낼 수 있습니까? 그래서 URL 인코딩을 필요로하지 않습니다
use URI::Escape;
$ret->content("xml_request=".uri_escape($XML));
안녕하세요 유진하게 될 겁니다, 내가에만 변경 작업이 $ RET-> 컨텐츠 (uri_escape를 ("xml_request = $ XML")) ; $ ret-> content (xml_request = uri_escape ($ XML)); 그리고 위대한 작품. – Welcho
@ Welcho, @ ikegami가 수정되었습니다. –