我正在使用FreshDesk API作为票务系统。在尝试发送附件时,有人指出应将其作为多部分/表单数据内容类型发送。有人能解释一下是怎么做到的吗?!我如何发送附件:
$json = json_encode(
array(
"helpdesk_note" => array(
"body" => Input::get('reply'),
"user_id" => $requester_id,
"attachments" => Input::get('photo'),
"private" => true
)
)
);
我不知道您是如何查询API的,但如果您使用的是CURL,只需设置适当的头:
curl_setopt($ch , CURL_HTTPHEADER , "Content-Type: multipart/form-data" );
我个人推荐Guzzle,它有一个干净和直接的API。在Guzzle中,你可以用更OO的方式修改你的标题。有几种方法可以完成你的任务。可能的方法是:
$client = new GuzzleHttp'Client();
$request = $client->createRequest('POST', 'https://url.com/to/post/to');
$request->setHeader('content-type', 'multipart/form-data');
// Set the data you need to
$response = $client->send($request);
var_dump($response);
Guzzle顺便说一句,与Laravel融合是小菜一碟。只要在你的composer.json
中要求它,你就可以出发了!