2017-03-16 30 views
2

我有这样的代码:Perl的样本等同的JavaScript代码

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代码的解释是正确的,我需要一些可以发送两者的东西。

在此先感谢任何人谁都会指导我。

+0

不知道是否它是一个自定义的http头,我认为这意味着'查询字符串',我想我应该尝试将它声明为自定义头。现在尝试。感谢您指出了这一点。 – Sophia

回答

5

您可以使用URI模块(可能由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, 
); 
+0

它的工作!谢谢,你是我的救星! – Sophia