好的......我試圖將XML頁面發佈到戰略合作伙伴的網站,以便他們進行一些計算並返回響應代碼通過XML。使用Perl LWP :: UserAgent和需要用戶名和密碼連接的XML
我使用花園多種PERL,並試圖使用LWP :: UserAgent來做到這一點...如果有更優雅的方式,請指出我在那個方向。
我可以打他們的服務器,並得到一個代碼...但它拒絕訪問他們的服務器,因爲它所期望的用戶名和密碼是不正確的。用戶名和密碼沒有在實際的XML代碼中指定,它應該作爲實際的POST方法的一部分傳遞給服務器......但我不知道如何做到這一點。
合作伙伴提供了以下意見:
與他的XML 獲取生成,和他的用戶名/密碼組合更換YOUR_XML_FILE,YOUR_USER和YOUR_PASSWORD。這個 應該從他有他的perl腳本的服務器上完成。
wget的--no檢查證書--post文件YOUR_XML_FILE https://previewtest.clverify.com/webservice/exec -O previewsamplerequest.response.xml --http用戶= YOUR_USER --http-密碼= YOUR_PASSWORD
我不知道應該在哪裏生成,或者LWP :: UserAgent中的選項用於指定它們。有沒有人在那裏做過?
這裏是我的代碼:
sub ConsumerInfo {
my $cid = shift;
my $response = undef;
my $sendXML = &Create_ConsumerInfo_Request($cid);
if ($sendXML) {
&DoXMLUpload($sendXML);
my $browser = LWP::UserAgent->new(agent => 'perl post');
$browser->credentials('','','username','[email protected]');
$response = $browser->request(POST 'https://previewtest.clverify.com/webservice/exec',
Content_Type => 'text/xml',
Content => $sendXML);
print "Content-type:text/html\n\n";
print $response->error_as_HTML unless $response->is_success;
print $response->as_string;
} else {
&ErrorMsg("No XML Code Was Found.");
exit;
}
# ===============================================================
# Need to insert parser in here to convert this into an array.
# ===============================================================
return $response;
}
夥計,從您的代碼段刪除連接細節,像埃裏克說... – zgpmax