相当于 Perl 示例 JavaScript 代码

Perl equivalent of a sample JavaScript codes

我有这个代码:

  request({
    uri: 'https://graph.facebook.com/v2.6/me/messages',
    qs: { access_token: PAGE_ACCESS_TOKEN },
    method: 'POST',
    json: messageData
  })

我想将其转换为 Perl,目前我拥有的是:

my $req = HTTP::Request->new( 'POST', 'https://graph.facebook.com/v2.6/me/messages');
$req->header( 'Content-Type' => 'application/json' );
$req->content( $messageData );

我不确定如何将以下行合并到我的 Perl 代码中:

qs: { access_token: PAGE_ACCESS_TOKEN },

它指定要添加到 URL 的查询参数。

我试图搜索网络,但大多数示例要么发送 json 内容,要么发送查询字符串,但不能同时发送两者。如果我对 JavaScript 代码的解释是正确的,我需要可以发送两者的东西。

在此先感谢任何指导我的人。

您可以使用 URI module (possibly supplemented by the URI::QueryParam 模块)构建(和操作)URL。

use HTTP::Request::Common qw( POST );
use JSON::XS              qw( encode_json );
use URI                   qw( );

my $message_data = encode_json(...);

my $url = URI->new('https://graph.facebook.com/v2.6/me/messages');
$url->query_form( access_token => PAGE_ACCESS_TOKEN );

my $req = POST($url,
   Content_Type => 'application/json',
   Content      => $message_data,
);