通过perl将数据作为multipart / form发布

时间:2014-11-19 14:57:34

标签: perl api rest

我是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。

0 个答案:

没有答案