は、私は上記のコードは常に400エラーを与える次のコードLWP :: UserAgentを使用してBOX APIで投稿リクエストを作成するには?
my $url = "https://api.box.com/2.0/users/";
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request::Common qw{ POST };
use CGI;
my $ua = LWP::UserAgent->new();
my $request = POST($url, [ 'name' => 'mkhun', 'is_platform_access_only' => 'true',"Authorization" => "Bearer <ACC TOK>" ]);
my $content = $ua->request($request)->as_string();
my $cgi = CGI->new();
print $cgi->header(), $content;
を試してみました。そして
{"type":"error","status":400,"code":"bad_request","context_info":{"errors":[{"reason":"invalid_parameter","name":"entity-body","message":"Invalid value 'is_platform_access_only=true&Authorization=Bearer+WcpZasitJWVDQ87Vs1OB9dQedRVyOrs6&name=mkhun'. Entity body should be a correctly nested resource attribute name\/value pair"}]},
を投げ、私は問題が何であるかを知りません。 Linuxのカールと同じことが働いています。 Box API documentation says
curl https://api.box.com/2.0/users \
-H "Authorization: Bearer <TOKEN>" \
-d '{"name": "Ned Stark", "is_platform_access_only": true}' \
-X POST
'true'をし、' 'true''は同じことを意味するものではありません。 '[...]'と '{...} 'は互換性がありません。 –
@SinanÜnür '' '' ''と '' '' ''は、LWPを使ってフォームデータを投稿するときにはほとんど互換です。 – melpomene
@melpomene受信側のソフトウェアは、パラメータが指定されている順序を気にしないと仮定しています。おそらく、確かではありませんが、想像を絶するものではありません。 –