0

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

そこに「form=」は入れたくありません。

いくつかの回避策を試しましたが、何も送信されないか、最後に余分な「=」記号が付いてしまいます。これは簡単なはずです...変数名なしでコンテンツを投稿の本文として使用する方法はありますか?

私はLWPを使用する以外のことをすることにオープンです。それは、以前に使用したことがあるので、私の出発点にすぎませんでした。

ありがとう!

4

1 に答える 1

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
于 2012-09-19T04:49:39.987 に答える