Non autorisée lors de l'appel de Google GCM
Que j'essaie d'utiliser Google GCM pour l'envoi de notifications push. Mais obtenir un WebException qui dit que le serveur distant renvoie 401 interventions non autorisées. Je ne peux pas foung pourquoi il ne débite pas de travail.
Quelqu'un qui sait pourquoi ça ne marche pas?
Voici mon code:
ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateServerCertificate);
HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("https://android.googleapis.com/gcm/send");
Request.Method = "POST";
Request.KeepAlive = false;
string postData = "{ 'registration_ids': [ '"+registrationId+"' ], 'data': {'message': '"+message+"'}}";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
Request.ContentType = "application/json";
//Request.ContentLength = byteArray.Length;
//Request.Headers.Add(HttpRequestHeader.Authorization, "GoogleLogin auth=" + AuthString);
Request.Headers.Add(HttpRequestHeader.Authorization, "Authorization: key=AIzaSyCEygavdzrNM3pWNPtvaJXpvW66CKnjH_Y");
//-- Delegate Modeling to Validate Server Certificate --//
//-- Create Stream to Write Byte Array --//
Stream dataStream = Request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
//-- Post a Message --//
WebResponse Response = Request.GetResponse();
HttpStatusCode ResponseCode = ((HttpWebResponse)Response).StatusCode;
if (ResponseCode.Equals(HttpStatusCode.Unauthorized) || ResponseCode.Equals(HttpStatusCode.Forbidden))
{
var text = "Unauthorized - need new token";
}
else if (!ResponseCode.Equals(HttpStatusCode.OK))
{
var text = "Response from web service isn't OK";
}
StreamReader Reader = new StreamReader(Response.GetResponseStream());
string responseLine = Reader.ReadLine();
Reader.Close();
Quelle est la ValidateServerCertificate variable?
OriginalL'auteur Daniel | 2012-07-11
Vous devez vous connecter pour publier un commentaire.
Daniel - Dude il y a un problème avec le GCM documentation ! Utiliser le Navigateur clés comme la clé d'autorisation à la place de Serveur de clé API . Il va travailler.
Le type u n'avez pas besoin de ! Pour le navigateur clé est de générer automatiquement et vous pouvez l'utiliser . Deuxièmement, j'ai été confronté au même problème qui a été résolu à l'aide du navigateur clés comme la clé d'autorisation.
J'ai eu la même erreur avec le navigateur de la clé. J'ai ajouté une image dans le post ci-dessus.
Et comment avez-vous egt que le navigateur clé ?
les gars...vous avez sauvé mon honneur...!!!! excellente solution...!!! Chapeau @bhuvin
OriginalL'auteur bhuvin
OK, je suis juste à la prise de vue dans l'obscurité ici. Jetez un oeil à cette ligne:
Ne devrait-elle pas être:
Depuis vous la raconter c'est un en-tête d'Autorisation, il n'y a pas besoin d'ajouter de l'Autorisation: encore une fois, n'est ce pas?
Aussi, assurez-vous que la constante de chaîne 'HttpRequestHeader.L'autorisation "Autorisation".
400 signifie que votre JSON charge utile ne peut pas être analysé par GCM serveur. Changer votre JSON mise en forme de guillemets simples guillemets doubles.
Merci, maintenant ça fonctionne!!
Salut, dans mon cas sa montre l'Erreur 401. Quelqu'un peut m'aider s'il vous plaît.
OriginalL'auteur azgolfer