所以我正在尝试查询API并获取JSON对象。一切都适用于我的本地WAMP安装,但当我将其部署到服务器时,API查询失败:( 我尝试过使用cURL和file_get_contents()。结果相同。 我试过两个主机,同样的问题。
我看了this question,这听起来和我的问题完全一样。但没有运气。 这other question听起来更像我的问题,问题与主机防火墙有关。但没有详细说明他如何修复它(我还不能发表评论)?
如果URL是某个维基百科页面,则脚本执行正常(在服务器上)。但不是我要定位的API服务。
API使用端口8080,所以我怀疑它与它有关,现在我正在接受如何能够解决这个问题的提示。
感谢。
[更新:]我的Webhost说问题出在我的(引用)“代码”......所以这是我的测试脚本。 (在localhost上运行正常)
<?php
$APIcall = 'http://ontoserver.csiro.au:8080/ontoserver/resources/resolve?id=392608003';
echo 'Contacting: ' . $APIcall.'<br>';
$OntoResponse = file_get_contents($APIcall, true);
echo 'Fetch data:<br>';
var_dump($OntoResponse);
?>
但是当我发布它时,我收到以下错误:“警告:file_get_contents(http://ontoserver.csiro.au:8080/ontoserver/resources/resolve?id=392608003)[function.file-get-contents]:无法打开流:连接超时”
我很难过.. 再次感谢。
答案 0 :(得分:0)
在我的本地WAMP服务器上执行的脚本没有问题。我的解决方案是将脚本托管在不同的主机(Azure)上,并且第一次运行正常。 (没有特别的设置)
我从来没有弄清楚具体原因,但我相信它是我共享的网络托管配置中的一些东西。我试图使用预算共享托管服务(Crazy Domains)来托管我的脚本。
注意:除此之外,我对我的主机提供商感到满意。但帮助或配置设置来做到这一点似乎超出了他们的要求。