如何在perl中以json格式输出LWP请求

时间:2014-08-19 07:53:20

标签: perl lwp

我没有得到如何以json格式解析LWP po​​st请求的输出。 我使用下面的代码: -

use LWP::UserAgent;
use JSON;

my $ua = LWP::UserAgent->new;
my $server_endpoint = URL;                   #URL contains actual URL

# set custom HTTP request header fields
my $req = HTTP::Request->new( POST => $server_endpoint );
$req->header( 'content-type' => 'application/json' );
$req->header( 'Accept'       => 'application/json' );

# add POST data to HTTP request body
my $post_data = '{ "auth": {"tenantName":"****", "passwordCredentials": {"username":"****","password":"****"} }}';
$req->content($post_data);

my $resp = $ua->request($req);
if ( $resp->is_success ) {
    my $message = $resp->decoded_content;
    print "Received reply: $message\n\n\n";
    $tojson   = to_json($resp);
    $fromjson = from_json($tojson);
    print "Token id is " . $fromjson->{'access'}{'token'}{'tenant'}{'id'} . "\n";
}

我想通过使用哈希来获取令牌ID。但我没有得到任何输出。 那么有没有办法以json格式转换输出,以便我们可以轻松获取令牌ID?

1 个答案:

答案 0 :(得分:6)

$tojson   = to_json($resp);
$fromjson = from_json($tojson);

不应该是$fromjson = from_json($message);吗?