2012-09-19 48 views
0

我正在嘗試使用LWP將一些內容發佈到託管服務,而我無法控制它,即我必須符合他們的標準。perl lwp表單發佈

基本上,內容必須在後走了過來,看起來類似以下內容:

POST/HTTP/1.1 
Accept:*/* 
Content-Type: text/xml 
[various other headers] 

<?xml version="1.0" encoding="UTF-8"?> 
<xmlContent>here</xmlContent> 

我看LWP文件,它的例子是這樣的:

$response = $browser->post($url, 
    ['form' => '<?xml version="1.0" encoding="UTF-8"?><content>foobarbaz</content>'], 
    'Content_Type' => 'text/xml', 
    'headerkey2' => 'hvalue2', 
); 

如此相反,我的數據會在這樣的:

[headers] 

form=<?xml blah blah blah 

我不希望「的形式=」在 那裏。

我已經嘗試了一些解決方法,但是我最終沒有發送任何內容,或者在最後加上了'='號。這似乎應該很容易...有沒有什麼辦法可以讓我的內容作爲帖子的主體而不是變量名?

我願意做的事情不是使用LWP,而是因爲我之前使用過它而只是我的跳躍點。

謝謝!

回答

1

我不認爲你需要的一種形式:

$req = HTTP::Request->new(POST => $url); 
    $req->header("Content-Type" => "text/xml"); 
    $req->content(<<EOT); 
    <?xml version="1.0" encoding="UTF-8"?> 
    <xmlContent>here</xmlContent> 
    EOT 
+0

OK,這是真棒。我一開始並不完全明白,但後來我把兩個和兩個放在一起,並在下面添加了這一行: my $ responseContent = $ browser-> request($ req) - > as_string; ...其中$瀏覽器是一個LWP :: UserAgent對象,並bada,它的工作。 Muchas gracias!希望我有足夠的業力來回應你的答案! –