Я пытаюсь сохранить ответ REST API ( документация - только Poli sh) в виде файла PDF на сервере, используя запрос PHP curl. Следующий код дает статус ответа 200, что означает, что API предоставляет мне двоичную этикетку доставки PDF.
Проблема в том, что json_last_error_msg () сообщает: «Неверно сформированные символы UTF-8, возможно, неправильно закодированы» и файл PDF сохранен на сервере поврежден.
Я что-то делаю не так или что-то упускаю?
$url = "https://api-shipx-pl.easypack24.net/v1/shipments/314718872/label?format=Pdf&type=normal";
$headr[] = 'Content-type: application/json';
$headr[] = 'Authorization: Bearer '.$accesstoken; //the token is defined elsewhere ofc
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER,$headr);
$json_response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
echo "Response status: " . $status . "<br>"; //that echoes 200
$response = json_decode($json_response, true);
echo "Error: " . json_last_error_msg() . "<br>"; //that's Malformed UTF-8...
$pdfData = base64_decode($json_response);
file_put_contents('some_test_label.pdf', $pdfData);