2017-03-14 25 views
-1

私はcurl php getリクエストを実行して、ページにいくつかのjsonデータを表示しようとしています。Curl 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

関連する問題