この「質問」は、ここでの回答の明確化を求めています: How can I make a JSON POST request with LWP?
回答にコメントする評判がなく、質問を回答として投稿するのは不適切だと感じました。
具体的には、キーと値のペアではなく、(他の質問者と同じように) JSON データを投稿しようとしています。
なぜこれが機能するのですか:
my $lwp = LWP::UserAgent->new;
my $req = HTTP::Request->new( 'POST', $uri );
$req->header( 'Content-Type' => 'application/json' );
$req->content( $json );
my $response = $lwp->request( $req );
しかし、これはしません:
my $req= POST( $uri, $json); ### this works for key/value pairs
$req->header( 'Content-Type' => 'application/json' );
my $response = $lwp->request( $req);
...そしてどちらもこれをしません:
my $response = $lwp->request(POST $uri, ['Content-Type' => 'application/json'], $json);
HTTP::Request::Common と LWP::Useragent の両方のマニュアルを読みましたが、間違ったことを見ているだけだと思います。
繰り返しますが、最初の例はうまく機能しますが、これをもっとよく理解したいと思います。
ありがとう。