2011-08-21 78 views
1

我有一个关于tumblr的博客,我试图通过php和tumblrs api访问它。file_get_contents失败

API的端点是:

http://blog.example.com/api/read/json?start=0&num=10&debug=1 

这似乎很好地工作。

然而,当我这样做:

$result = file_get_contents("http://blog.example.com/api/read/json?start=0&num=10&debug=1"); 

print_r($result); 

浏览器输出

Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /path/to/file/test.php on line 5 

Warning: file_get_contents(http://blog.example.com/api/read/json?start=0&num=10&debug=1) [function.file-get-contents]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /path/to/file/test.php on line 5 

这也失败,卷曲。

想法?

我认为这与我的博客位于子域的事实有关。我这样说的原因是,如果我在位于根网址的博客上运行相同的脚本,它可以正常工作。有没有正确的方法来逃脱子域名?

+0

卷曲失败的原因是什么? (使用'curl_error()'输出它) –

+0

这意味着''willium.com'很可能不会被你运行这个脚本的机器解决。 –

+0

我认为这与我的博客位于子域的事实有关。我这样说的原因是,如果我在位于根网址的博客上运行相同的脚本,它可以正常工作。有没有正确的方法来逃脱子域名? – willium

回答

0

新的tumblr API:http://www.tumblr.com/docs/en/api/v2

如果您有您的域名与你的tumblr帐户它会工作。一个example

+0

我知道这很奇怪,旧的API可以工作,但是当我从脚本中使用它时没有工作。很奇怪。尽管如此,这工作! – willium

2

此代码失败,因为DNS查找失败。这可能是因为您的服务器在联系其名称服务器时遇到问题。或者因为blog.example.com不存在(它在我的浏览器中失败,所以它应该无处不在)。您可以尝试将您的名称服务器更改为Google的:8.8.8.8和8.8.4.4。这些DNS服务器运行良好。

+1

如果你认为我自己的blog.example.com你疯了;) – willium

+0

@willium是啊,但你想抓住一个不存在的域?因为您的服务器无法解析域名。它非常明显。 – rook

+0

要确认问题是域不存在(它应该是,但可能会有更多问题),请尝试在诸如google.com之类的地方执行file_get_contents。如果它无法解决,你的DNS有问题。不过,我认为更可能的问题是blog.example.com根本不存在。如果您使用了不同的域并针对此问题进行了更改,那可能不是问题所在。 –

相关问题