FurlでBasic認証を突破する。(もしくは、curl -u的な)

某APIのサンプルがcurlしかないので、Perlで実装しようとした時に、-uってどうやんのさ・・?って調べたんでメモ。

叩きたいコマンドは、以下みたいな感じ。

curl -u user:pass http://xxx.example.com/user_data

で、これをPerl(Furl)で書くと下記。

use Furl;
my $furl = Furl->new();

my $res = $furl->post('http://user:pass@xxx.example.com/user_data',[],[ id => 1 ]);
print $res->content if $res->is_success;

てな感じで、ドメインの前にuser:pass@をつける事で、curlの-u相当の事ができる。

ちなみに、、
userのみ(pass無し)でアクセスしたい場合は、下記のような感じ。

my $res = $furl->post('https://user: @xxx.example.com/user_data',[],[ id => 1 ]);

これをuser:@って繋げて書くとエラーがでるんで、:@の間にスペースを挟む。