Nicht autorisierte beim aufrufen von Google GCM
Ich versuche, die Verwendung von Google GCM für das senden von push-Benachrichtigungen. Aber eine WebException, die sagt, dass der remote-server zurück, 401 eigenmächtige. Ich kann nicht foung, warum es doen ' T Arbeit.
Jeder, der weiß, warum es nicht funktioniert?
Hier ist mein 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();
- Was ist der ValidateServerCertificate variable?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Daniel - Dude gibt es ein Problem mit dem GCM-Dokumentation ! Verwenden Sie den Browser, key authorization key an der Stelle der Server-API-key . Wird es funktionieren.
OK, ich bin nur Mutmaßungen hier. Werfen Sie einen Blick auf diese Zeile:
Sollte es nicht sein:
Da du sagst es das ist ein Authorization-header, gibt es keine Notwendigkeit zum hinzufügen von 'Autorisierung:' schon wieder, nicht wahr?
Ebenfalls sicherstellen, dass die string-Konstanten 'HttpRequestHeader.Authorization' ist 'Genehmigung'.