【发布时间】:2018-04-06 15:13:58
【问题描述】:
您好,我正在尝试从以下网址获取信息:
我在 PHP 中尝试了 CURL 和 file_get_contents,但无法获取请求。
当我使用 file_get_contents 时:
警告:file_get_contents(https://www.adx.ae/en/_vti_bin/ADX/svc/trading.svc/ListedCompanyOrderBook?listedCompanyID=ADIB):打开流失败:HTTP 请求失败! HTTP/1.1 400 错误请求
当我使用 CURL 时,我收到以下消息:
下面是file_contents代码:
<?php
$url = "https://www.adx.ae/en/_vti_bin/ADX/svc/trading.svc/ListedCompanyOrderBook?listedCompanyID=ADIB";
$data = file_get_contents($url);
print_r($data);
?>
另一种方法:
<?php
$url = "https://www.adx.ae/en/_vti_bin/ADX/svc/trading.svc/ListedCompanyOrderBook?listedCompanyID=ADIB";
$data = file_get_contents($url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$data = curl_exec($ch);
curl_close($ch);
print_r($data);
?>
【问题讨论】:
-
我知道一些需要设置用户代理的api,如果这个api是这种情况,请尝试使用这个
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');设置用户代理 -
刚试了一下,还是一样的错误(Request Error)
-
考虑到网站在美学上的吸引力,我对他们的 API 存在漏洞并不感到惊讶。该请求在使用 Web 浏览器时显然有效,但在 PHP 5.0.x 到 7.2.x 中使用
file_get_contents()时我得到Warning: file_get_contents(https://www.adx.ae/en/_vti_bin/ADX/svc/trading.svc/ListedCompanyOrderBook?listedCompanyID=ADIB): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in...。您需要联系网站并让他们帮助您。 -
你有解决办法吗?
-
@BeingSunny 无解
标签: php