接口请求返回错误:ERROR PHP Notice: Undefined index: HTTP_USER_AGENT
项目用的是curl请求出现这个错误的原因是服务端没有接收到UserAgent。
UserAgent
User Agent为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
解决办法:使用CURLOPT_USERAGENT伪造 User-Agent
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36');
/*HTTP请求(支持HTTP/HTTPS,支持GET/POST)*/
public function http_request($url, $data = null)
{
$curl = curl_init();//HTTP_USER_AGENT User-Agent
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, TRUE);
if (!empty($data)) {
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36');
$output = curl_exec($curl);
curl_close($curl);
return $output;
}