2017-03-16 29 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