我是Perl新手,我正在通过PERL进行REST API调用。我通常发送API请求并通过一些在线http请求检查器(如Requestbin
)进行检查我做了一些谷歌搜索,如果内容类型为'application / json',我能够成功发布帖子
这是代码
use REST::Client;
use MIME::Base64;
my $email_id = 'someemail@email.com';
my $email_pass = 'password';
my $client = REST::Client->new();
$client->setHost("http://requestb.in");
$client->addHeader('Content-Type', 'application/json');
$client->addHeader('charset', 'UTF-8');
$client->addHeader("Authorization", "Basic ".encode_base64("$email_id:$email_pass"));
$req="
{
\"new_post\":{
\"description\":\"Some details on the issue ...\",
\"subject\":\"custom email\",
\"email\":\"someone\@mailinator.com\",
}
}";
my $response = $client->POST("/pq0x1rpq",$req);
print $client->responseCode();
$result = $client->responseContent();
print $result;
上面显示的代码块工作正常,但是当我尝试发布multipart / form-data时,我无法发布它,我在执行脚本时遇到错误。
使用REST :: Client; 使用MIME :: Base64;
my $email_id = 'someemail@email.com';
my $email_pass = 'password';
my $client = REST::Client->new();
$client->setHost("http://requestb.in");
$client->addHeader('Content-Type', 'multipart/form-data');#Please note
$client->addHeader('charset', 'UTF-8');
$client->addHeader("Authorization", "Basic ".encode_base64("$email_id:$email_pass"));
$req='helpdesk_ticket[subject]: This is a subject
helpdesk_ticket[description]: this is a sample ticket
helpdesk_ticket[email]: example\@example.com';
my $response = $client->POST("/pq0x1rpq",$req);
print $client->responseCode();
$result = $client->responseContent();
print $result;
我认为multipart / form-data的语法是错误的,这就是我收到错误的原因。
请告诉我如何将multipart / formdata添加到perl。