-2

我正在开发 Android 中的推送通知。在服务器端,我实现了这段代码:

 $apiKey = "";


$registrationIDs = array( "" );


$message = "hello";


$url = 'https://android.googleapis.com/gcm/send';


$fields = array(
                'registration_ids'  => $registrationIDs,
                'data'              => array( "message" => $message ),

                );


$headers = array( 
                    'Authorization: key=' . $apiKey,
                    'Content-Type: application/json'

                );



$ch = curl_init();


curl_setopt( $ch, CURLOPT_URL, $url );


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 ) );


$result = curl_exec($ch);



curl_close($ch);

echo $result;

我正在使用 Xampp。第一次运行此代码浏览器时,未定义 curl 时出现致命错误。然后在 php.ini 文件中,我取消注释行 extension=php.curl.dll 并重新启动 apache 服务器,然后再次运行这段代码,它没有给出任何错误但没有回显结果。我是服务器端的新手,任何帮助将不胜感激

4

1 回答 1

2

要获取有关错误的更多信息,您可以使用以下代码。

   $responseInfo    = curl_getinfo($ch);
   $header_size    = curl_getinfo($ch, CURLINFO_HEADER_SIZE); 
   $responseHeader = substr($result, 0, $header_size);
   $responseBody   = substr($result, $header_size);

    echo 'Header: <br>'. $responseHeader;
    echo 'Body: <br>'. $responseBody;

请检查这个

$responseInfo['http_code'] -> gives the http response code. 

或者

如果您不确定如何调试,请使用一些对您有帮助的库。 ZendService_Google_Gcm

gcm响应码快速参考

你可以这样处理 https://github.com/zendframework/ZendService_Google_Gcm/blob/master/library/ZendService/Google/Gcm/Client.php#L116

于 2013-04-10T05:41:39.803 回答