2017-03-14 208 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