过去有像以下这样的更简单的问题。PHP使用带标题的cURL和GET请求
How do I send a GET request with a header from PHP?
但我不知道为什么我的代码不能正常工作。 我想通过使用带标头的cURL和GET请求来获得“状态码200 OK和二进制图像数据”。
我也可能在调试时出错。 我会感谢您的任何帮助。 在此先感谢!
API refrence:https://devdocs.line.me/en/#get-content
$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] ��
现有的问题,使用'print_r'是信息不足知道的类型。考虑使用'var_export'或'var_dump'甚至'json_encode',这将有助于显示数据类型。另外,你没有转储你的'$ response'。 – SOFe
'CURLOPT_POST,false'没有必要。 – SOFe
您确定要将',true'放在'var_export'的右括号后面吗? – SOFe