我尝试通过file_get_contents和HTTP_Request类访问API端点URL,但两者都返回404错误。但是,可以通过浏览器访问相同的URL。
值得注意的是,我在api.example.com上请求了一个页面,但404页面似乎是从www.example.com生成的页面。
这段代码在一周前就已经开始工作了,我刚刚注意到它现在不能正常工作,所以我不知道这是不是我的托管公司发生了变化,或者是不是#39;是我试图与之对话的网站。
对于它的价值,这里是我的代码,包含我迄今为止尝试过的所有内容(即添加标题并允许重定向):
$url = 'http://api.example.com/a/b?api_key=abc123';
$r = new HTTP_Request( $url, array( 'allowRedirects' => true ) );
$r->addHeader('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0');
$r->addHeader('Accept-Encoding','gzip, deflate');
$r->addHeader('Connection','keep-alive');
$r->addHeader('Accept','text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
$r->addHeader('Accept-Language','en-gb,en;q=0.5');
$r->setMethod('GET');
try {
$r->sendRequest();
if ($r->getResponseCode() == 200) {
return json_decode( $r->getResponseBody() );
} else {
// Always goes here!!
print '<!-- ' . $r->getResponseCode() . ' -->';
}
} catch (HttpException $ex) {
echo '<!-- ' . $ex . ' -->';
}
答案 0 :(得分:0)
问题是由于DNS解析失败。切换到IP解决了它。谢谢你的时间,Dagon。