2016-08-21 8 views
0

私は、Perl 5でHTTP::Tinyのヘッダーを設定する正しい方法を理解しています。これまでのところ、ハッシュ、ハッシュリファレンス、および他の一見不可解な方法の例を見てきました。PerlでHTTP :: Tinyのカスタムヘッダーを設定するには?

リクエストのヘッダーを設定する適切な方法は何ですか?リクエストが送信される前にそれを表示する簡単な方法は何ですか?ここで

は、いくつかのサンプルコードです:

#!/usr/bin/env perl                                            
use 5.12.1;                                              
use HTTP::Tiny;                                             

my $api_key = "::";                                            

my %headers = (Authorization => sprintf 'Bearer %s', $api_key);                                    
my $url = "https://api-fxpractice.oanda.com/v3/accounts";                                   

my $response = HTTP::Tiny->new($url, 
    default_headers => {'Content-Type' => 'application/json'});                

my $response = HTTP::Tiny->new->get($url, { default_headers => \%headers });                              

print "$response->{status} $response->{reason}\n";                                                 
while (my ($k, $v) = each %{ $response->{headers} }) { 
     print "$k: $_\n"; 
    }                                               
} 

print $response->{content} if length $response->{content}; 

そして、それは私に401

を与えてありがとうございました!

答えて

0

この問題は、私が愚かで細部に注意を払っていないこととたくさん関係していました。基本的には、

    私は実質のお金のAPIを使用した
  1. ない偽の1、私はきちんと
  2. 私が代わりに「ヘッダ」

の「default_headers」に設定されたハッシュリファレンスを使用していませんでした

  • `

    my $api_key = "::" 
    
    my %headers = (
        "Content-Type" => "application/json", 
        "Authorization" => sprintf 'Bearer %s', $api_key); 
    
    my $url = "https://api-fxpractice.oanda.com/v1/accounts"; 
    
    my $response = HTTP::Tiny->new->get($url, { headers => \%headers }); 
    
    print "$response->{status} $response->{reason}\n"; 
    
    while (my ($k, $v) = each %{ $response->{headers} }) { 
        for (ref $v eq 'ARRAY' ? @$v : $v) { 
         print "$k: $_\n"; 
        } 
    } 
    
    print $response->{content} if length $response->{content}; 
    

    `

  • 関連する問題