Curl没有在PHP中给出响应

时间:2013-04-10 05:29:17

标签: php

我正在开发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服务器,然后再次运行此代码,它不会给出任何错误,但不会回显结果。我是服务器端新手任何帮助将不胜感激

1 个答案:

答案 0 :(得分: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;

请检查this

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

或者

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

gcm response codes

的快速参考

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