PHP Использование cURL и GET-запроса с заголовком
В прошлом есть более тонкие вопросы, как показано ниже.
Как отправить запрос GET с заголовком из PHP?
Но я не знаю, почему мой код не работает. Я хочу получить "код состояния 200 OK и данные изображения в двоичном формате" с помощью запросов cURL и GET с заголовком.
Я тоже могу ошибаться при отладке. Буду признателен за любую помощь. Заранее спасибо!
Ссылка API: https://devdocs.line.me/en/
$url = "https://api.line.me/v2/bot/message/". $message_id. "/content";
$curl = curl_init("$url");
error_log(var_export($curl));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 証明書の検証を行わない
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
));
$response = curl_exec($curl);
$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$image_binary = substr($response, $header_size);
curl_close($curl);
error_log(print_r("xxx...",true));
error_log(var_export($response));
error_log(print_r("aaa...",true));
error_log(print_r($response,true));
error_log(print_r("bbb...",true));
error_log(print_r($header,true));
error_log(print_r("ccc...",true));
error_log(print_r($image_binary,true));
Тогда.. Я понял это...
2017-01-01T01:04:48.272544+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo]
2017-01-01T01:04:48.911005+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] xxx...
2017-01-01T01:04:48.911023+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo]
2017-01-01T01:04:48.911063+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] aaa...
2017-01-01T01:04:48.911125+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911165+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] bbb...
2017-01-01T01:04:48.911201+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911239+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ccc...
2017-01-01T01:04:48.911273+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ��
1 ответ
Согласно документации PHP для CURLOPT_HEADER
:
ИСТИНА, чтобы включить заголовок в вывод.
Ваш $response
вероятно будет выглядеть так:
HTTP/1.1 200 OK
Some: headers
More: header lines
{
"real": "json content"
}
Это потому, что вы добавили CURLOPT_HEADER
вариант.
Вам не нужно устанавливать какие-либо параметры, чтобы запрос curl отправлял ваши заголовки. Пока вы устанавливаете CURLOPT_HTTPHEADER
Опция, заголовки будут отправлены.
Если вы действительно хотите получать заголовки ответа, проверьте существующие вопросы, такие как /questions/45862158/mozhet-li-php-curl-poluchit-zagolovki-otveta-i-telo-v-odnom-zaprose/45862195#45862195