php 如何以curl_setopt()函数的数组形式修复HTTP头

pbpqsu0x  于 2023-05-27  发布在  PHP
关注(0)|答案(2)|浏览(114)

我做了一个程序,需要在curl函数中使用请求头,但是当我运行程序时,出现以下消息:必须使用CURLOPT_HTTPHEADER参数传递对象或数组
请帮助修复它
我使用函数curl_setopt(.........,$ headers),但结果仍然是

$headers = array();
$headers[] = 'User-Agent: Spotify-Lite/0.13.26.56 Android/25 (vivo 1719)';
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
$headers[] = 'Connection: Keep-Alive';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result   = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

curl_setopt():必须使用CURLOPT_HTTPHEADER参数传递对象或数组

aydmsdu9

aydmsdu91#

作为一种解决方法,在构建$headers时,尝试使用这种方法来代替数组方法。

$headers = new stdClass;
$headers->header1 = 'User-Agent: Spotify-Lite/0.13.26.56 Android/25 (vivo 1719)';
$headers->header2 = 'Content-Type: application/x-www-form-urlencoded';
$headers->header3 = 'Connection: Keep-Alive';

我能想到的唯一解释是你的array不知何故没有实现ArrayObject类。

bq8i3lrv

bq8i3lrv2#

$headers = array();
$headers["Content-Type"] = "application/x-www-form-urlencoded";

//Then on curl
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

相关问题