GAE、PHP和GCM:无法打开流:HTTP请求失败!HTTP/1.0 405方法不允许


GAE, PHP and GCM: failed to open stream: HTTP request failed! HTTP/1.0 405 Method Not Allowed

我正在开发一个web应用程序(使用GAE for PHP),当一些内容可供下载时,它会通知android客户端(通过GCM-谷歌云消息)。

以下PHP脚本应该完成任务:

$json = array( 
    'data' => array( ... ), 
    'registration_ids' => array( ... )
);
$data = json_encode( $json );
$context = array( 
    'http' => array(
        'method' => 'post',
        'header' => 'Authorization: key=MY_SECRET_KEY' . "'r'n" .
                    'Content-Type: application/json' . "'r'n",
        'content' => $data
    )
);
$context = @stream_context_create($context);
$result = @file_get_contents("https://android.googleapis.com/gcm/send", false, $context);

上面的代码在部署应用程序时会正确运行,但在我的本地开发环境中运行时不会正确运行。

在本地开发环境中,$resultnullfile_get_contents"回显"以下警告failed to open stream: HTTP request failed! HTTP/1.0 405 Method Not Allowed

我终于弄清楚发生了什么。

CCD_ 5与CCD_。

相信我,简单地将其更改为'method' => 'POST'(注意大写!)就成功了。