我有一个带有ASP.NET后端的Android应用程序.我有手机的registration_id以及来自谷歌的执行推送的应用服务器的身份验证令牌.
当我向C2DM发出http post请求以便手机收到消息时,我一直收到401 Unauthorized.以下是我在.NET中发出请求的方式:
WebRequest myRequest = WebRequest.Create("https://android.apis.google.com/c2dm/send"); myRequest.ContentType = "application/x-www-form-urlencoded"; myRequest.Method = "POST"; myRequest.Headers.Add("Authorization","GoogleLogin auth=" + authId); // buiold the post string StringBuilder myPost = new StringBuilder(); myPost.AppendFormat("registration_id={0}",regId); myPost.AppendFormat("&data.payload={0}",msg); myPost.AppendFormat("&collapse_key={0}",colKey); // write the post-string as a byte array byte[] myData = ASCIIEncoding.ASCII.GetBytes(myPost.ToString()); myRequest.ContentLength = myData.Length; Stream myStream = myRequest.GetRequestStream(); myStream.Write(myData,myData.Length); myStream.Close(); // Do the actual request and read the response stream WebResponse myResponse = myRequest.GetResponse(); Stream myResponseStream = myResponse.GetResponseStream(); StreamReader myResponseReader = new StreamReader(myResponseStream); string strResponse = myResponseReader.ReadToEnd(); myResponseReader.Close(); myResponseStream.Close();
任何帮助将非常感激.