【发布时间】:2015-05-14 16:25:13
【问题描述】:
我的服务器向 GCM api 发送 GCM 请求以获取推送通知。推送通知适用于一些推送通知,之后发出请求的 curl 函数因以下错误而超时
“Curl 失败:连接 android.googleapis.com 端口 443 失败:连接超时”
没有任何响应。但是响应码是200Ok。
但过了一段时间,如果我再次尝试,它会发送带有正确成功响应的通知,如果我尝试发送一段时间,它会再次挂起并显示上述消息。
我在防火墙上打开了端口 5228、5229 和 5230。
为什么会这样。我不知道为什么会这样。
这是我正在使用的代码
$headers = array(
'Authorization: key=' . $this->serverApiKey,
'Content-Type: application/json'
);
// Open connection
$ch = curl_init();
// Set the url, number of POST vars, POST data
curl_setopt( $ch, CURLOPT_URL, $this->url );
curl_setopt($ch, CURLOPT_PORT, 443);
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode( $fields ) );
// Avoids problem with https certificate
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false);
// Execute post
$result = curl_exec($ch);
请帮我找到解决办法。
【问题讨论】:
标签: php android curl google-cloud-messaging