Я использую FreshDesk API в качестве системы тикетов. При попытке отправить вложение было указано, что оно должно быть отправлено как multipart / form-data content-type. Может ли кто-нибудь объяснить, как это делается ?!
Как я отправляю вложения:
$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" );
Лично я бы порекомендовал пропивать который имеет чистый и прямой API.
В Guzzle вы можете изменить ваши заголовки более OO-Way. Есть несколько способов выполнить вашу задачу. По возможному подходу может быть:
$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);
Кстати, жадность — это кусок пирога, который нужно интегрировать с Laravel. Просто потребуйте это в своем composer.json
и ты в порядке!
Других решений пока нет …