2017-03-14 49 views
-1

我想要做一個捲曲php獲取請求,以顯示頁面上的一些json數據。捲曲PHP GET請求 - 504

我在這裏遇到的問題是我不斷受到504網關超時。

所以我跳了起來,讓我的代碼中的第二雙眼睛,以確保我沒有做任何愚蠢的事情或失蹤的東西。

// get request 
$ch = curl_init('http://*****'); 
$token = '****'; 

// Return Data 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLINFO_HEADER_OUT, true); 

//User Agent 
curl_setopt($ch, CURLOPT_USERAGENT, 'Fiddler'); 

//Set your auth headers 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Host: ****:8090', 
    'Content-Type: application/json', 
    'Authorization: Bearer '.$token 
    )); 

$data = curl_exec($ch); 

$info = curl_getinfo($ch); 

// print details of request on page 
echo 'info:' . $info ; 

// close curl resource to free up system resources 
curl_close($ch); 
+0

我不知道我們可以幫你解決這個問題。從功能的角度來看,你的代碼看起來很好。你必須聯繫該網站的支持,看看還有什麼可以做的。 – Machavity

+0

@Machavity我認爲可能是這種情況。首先想要第二個意見。謝謝 – DCdaz

+0

你的代碼主要工作。您是否驗證了從服務器到遠程的連接?他們是否從服務器響應端口80或443上的請求?如果您在沒有令牌的情況下提出請求,他們是否會迴應無效請求? –

回答

1

問題是,主機的防火牆都阻止請求特定端口,我不得不讓他們取消阻止這些端口,以便爲它工作。

0

您在標頭中出現錯誤,主機只能包含主機名Host: *****:8090

它必須是這樣的:Host: google.com

的端口必須採用curl_setopt()指定,像這樣:

curl_setopt($ch, CURLOPT_PORT, 8090); 
+0

加入@ Kark92的答案,你也試圖回顯出一個數組($ data),但這隻有在你首先獲得數據時纔是有用的。 –

+0

嘗試沒有區別對不起 – DCdaz

+0

刪除curl_init()上的'http://'並重試。 – Karkouch