2014-01-27 43 views
0

所以我試圖查詢一個API並獲取一個JSON對象。所有在我的本地WAMP安裝上運行良好,但是當我將它部署到服務器時,API查詢失敗:( 我嘗試過使用cURL和file_get_contents(),結果相同 我試過兩臺主機,問題。使用file_get_contents()共享主機PHP API調用超時

我看着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-內容]:未能打開流:連接超時「

我很難過.. 再次感謝。

+0

您是否嘗試將端口插入網址?例如:主機:8080 /路徑 – hindmost

+0

謝謝,我的請求是像http://APIprovider.com:8080/service/data?id=1234。我確定這是我的主機的服務器端問題(我正在等待他們的建議) – DougF

回答

0

該腳本在本地WAMP服務器上執行時沒有問題。我的解決方案是將該腳本託管在不同的主機上(Azure),並且它第一次正常工作。 (沒有特別設置)

我從來沒有找到具體的原因,但我相當有信心這是在我的共享網頁寄存配置。我正在嘗試使用預算共享託管服務託管我的腳本(Crazy Domains)。

注意:除此之外,我對我的主機提供商感到滿意。但幫助或配置設置來做到這一點似乎超出了他們的提供。