我在将cURL请求转换为Perl时遇到问题。 FWIW,在IBM AIX 7.1上使用v5.10.1。
在cURL中:
curl -s -u $USER:$PWD --data '@mft.json' -H 'Content-Type: application/json' -X POST $EVENT_URL
在Perl中:
use LWP::UserAgent;
use Data::Dumper;
my $ua = LWP::UserAgent->new();
my $user = "aaa";
my $pwd = "bbb";
my $port = 7090;
my $domain = "my.site.com";
my $url = "http://".$domain.":".$port;
my $event_url = $url."/mftapp/rest/v1/events";
my $file = "mft.json";
$ua->credentials($domain.":".$port, 'default', $user, $pwd);
my $response = $ua->post($event_url, Content_Type => 'form-data', Content => [file => $file]
);
my $content = $response->as_string();
print ($content);
根据Content_Type
的值,我得到不同的结果:
使用这些方法添加标题会破坏我的代码:
$ua->default_header('Content-Type' => 'application/json')
在request.pl第20行上无法通过包“ LWP :: UserAgent”找到对象方法“ default_header”。
答案 0 :(得分:3)
function getNamesOfLegalDrivers(people)
{
var legalDrivers = [];
for (var i in people) {
if(people[i].age >= 16){
legalDrivers.push(people[i].name);
}
}
return legalDrivers;
}
const examplePeopleArray = [
{ name: 'John', age: 14 },
{ name: 'Joey', age: 16 },
{ name: 'Jane', age: 18 }
];
console.log(getNamesOfLegalDrivers(examplePeopleArray));
并没有您认为的那样。您只是在向服务器发送垃圾,这就是为什么即使您告诉它正文为JSON(这是正确的选择)也显示“ Bad Request”的原因。
我建议添加Content => [file => $file]
并使用
use Path::Tiny;
实际上将读取并发送$ua->post($event_url,
Content_Type => 'application/json',
Content => path($file)->slurp_utf8,
);
的内容。