2011-08-21 72 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根本不存在。如果您使用了不同的域並針對此問題進行了更改,那可能不是問題所在。 –

相關問題