我正在使用最近我注意到的代码在某些时候失败的API。我通过file_get_contents检索它,并且出现错误“无法打开流:HTTP请求失败!”无论响应类型如何,获取外部页面内容
我直接将URL插入到浏览器中,然后回复回复,所以我很困惑。我想要检查标题,并且我注意到它会出现403,我必须假设这就是它失败的原因?当它不是403时,它确实有效。只有当API身份验证失败时才会出现403,并且我有代码来检查返回的XML是否表示失败。
所以真的问题是,我该如何取回代码,无论它是否403。我将开始使用simplexml_load_file,因为无论如何我都将它加载到SimpleXML中,但是如果有另一种方法可以/应该使用,那么建议也会很棒。
编辑:我已经尝试了简单的卷曲请求,但除非我做错了,它也未能:
$curlObject = curl_init('https://api.eveonline.com/account/Characters.xml.aspx?userID=8166034&characterID=91242713&apiKey=B174C8B7B4364048B8A44B8C494904059D50B942BB4748FD907FF1DBF3F18282');
curl_setopt($curlObject, CURLOPT_RETURNTRANSFER, 1);
$fileContents = curl_exec($curlObject);
curl_close($curlObject);
echo $fileContents;
你可以分享网址吗? –
http://api.eveonline.com/account/Characters.xml.aspx?userID=8166034&characterID=91242713&apiKey=B174C8B7B4364048B8A44B8C494904059D50B942BB4748FD907FF1DBF3F18282 – RhoVisions
您是否在询问如何获取最后一次file_get_contents操作的HTTP状态码?是的,'FALSE'意味着失败,确切的状态码是['http_response_headers'(特殊保留变量)](http://php.net/reserved.variables.httpresponseheader)的一部分, 请参阅[这里是一个例子解析它并获得状态码](http://stackoverflow.com/a/7566440/367456)(通过:http://stackoverflow.com/q/9724924/367456)。 – hakre