1

この作業に問題があり、400 の悪い要求応答が返され続けます。これは、perl のコーディングと JSON の使用の両方での私の最初の試みであるため、どんな助けも大歓迎です。これは仕事のためのものなので、機密データの一部を削除する必要がありました。このスクリプトのポイントは、JSON 経由で POST データを送信する URL を単純にヒットし、応答を出力することです。

#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request::Common;
use JSON;


my $ua = LWP::UserAgent->new;
my $req = POST 'URL IS HERE';
my $res = $ua->request($req);
my $json = '{"warehouseId": "ID",
"tagMap":
  {"cameraId":["Name of camera"]
  },
"searchStartTimeStamp": 0,
"searchEndTimeStamp": 100000000000000,
"pageSize": 1,
 "client": 
  {"id": "username",
   "type": "person"}
}';


$req->header( 'Content-Type' => 'application/json' );
$req->content( $json );


    if ($res->is_success) {
print $req->content( $json );

    print $res->content;
} else {
    print $res->status_line . "\n";
}
exit 0;
4

1 に答える 1

9

完全に入力する前にリクエストを実行します。この行はリクエストを行います:

my $res = $ua->request($req);

しかし、数行後、いくつかのフィールドに入力します。

$req->header( 'Content-Type' => 'application/json' );
$req->content( $json );

それを交換してみてください:

my $json = ...;

my $ua = LWP::UserAgent->new;
my $req = POST 'URL IS HERE';    
$req->header( 'Content-Type' => 'application/json' );
$req->content( $json );

my $res = $ua->request($req);

ああ、決して$res->content。そのメソッドの値は、一般的に使用できるものではありません。あなたはいつもしたい

$res->decoded_content;
于 2013-07-09T16:28:56.650 に答える