繁体   English   中英

无法使用 CURL (php) 获取 JSON

[英]Can't get JSON using CURL (php)

我以为我对 PHP/curl 已经掌握得很好,但在这里我不知道是怎么回事?

[GET] https://www.olx.pl可以正常获取,但我无法获取 JSON 请求:[GET] https://www.olx.pl/i2/ajax/ad/getcontact/? id=477486803&type=电话

在浏览器中很好,在 POSTMAN 中很好(关闭所有安全选项)。

我执行的代码:

$urlForTel = "https://www.olx.pl/i2/ajax/ad/getcontact/?id=477486803&type=phone";
$headers = array(
    'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0'
);
$ch = curl_init();
// curl_setopt($ch, CURLOPT_PROXY, $proxy_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
//curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $urlForTel);
$result=curl_exec($ch);

代码只是停止并且不会前进......正如你所看到的,我尝试了许多不同的选项(证书、代理、带标题和不带标题)。 但是,当您更改例如参数中 ID 中的最后一位数字(请求不存在的资产)时,它会正确返回 HTML...

我试过curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); 下载了证书并带有/不带有用户代理......

我可以用给定的代码重现您的问题,并通过简单地添加一个Accept标头来使其工作,如下所示:

$headers = array(
    'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0',
    'Accept: application/json',
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM