2015-05-23 12 views
1

мой код GCM:System.Net.WebException: Удаленный сервер возвратил ошибку: (401) Unauthorized.in C#?

[WebMethod] 
     public void SendNotificationToAndroid() 
     { 
      string DeviceTokenID = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
      // string deviceId = notificationId; 
      const string tickerText = "Text"; 
      const string contentTitle = "Title"; 
      string message = "Hello world"; 
      string postData = 
      "{ \"registration_ids\": [ \"" + DeviceTokenID + "\" ], " + 
       "\"data\": {\"tickerText\":\"" + tickerText + "\", " + 
         "\"contentTitle\":\"" + contentTitle + "\", " + 
         "\"message\": \"" + message + "\"}}"; 
      SendGcmNotification("xxxxxxxxxxxxxxxxx", postData, "application/json"); 
     } 




private void SendGcmNotification(string apiKey, string postData, string postDataContentType) 
     { 
      // ServicePointManager.ServerCertificateValidationCallback += ValidateServerCertificate; 
      var byteArray = Encoding.UTF8.GetBytes(postData); 
      var request = (HttpWebRequest)WebRequest.Create("https://android.googleapis.com/gcm/send"); 
      request.Method = "POST"; 
      request.KeepAlive = false; 
      request.ContentType = postDataContentType; 
      request.Headers.Add(string.Format("Authorization: key={0}", apiKey)); 
      request.ContentLength = byteArray.Length; 


      request.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; 

      var dataStream = request.GetRequestStream(); 
      dataStream.Write(byteArray, 0, byteArray.Length); 
      dataStream.Close(); 



      try 
      { 
       var response = request.GetResponse(); 
       var responseCode = ((HttpWebResponse)response).StatusCode; 
       if (responseCode.Equals(HttpStatusCode.Unauthorized) || responseCode.Equals(HttpStatusCode.Forbidden)) 
       { 
        const string text = "Unauthorized - need new token"; 
        Context.Response.Write(text); 
       } 
       else if (!responseCode.Equals(HttpStatusCode.OK)) 
       { 
        const string text = "Response from web service isn't OK"; 
        Context.Response.Write(text); 
       } 
       // ReSharper disable AssignNullToNotNullAttribute 
       var reader = new StreamReader(response.GetResponseStream()); 
       // ReSharper restore AssignNullToNotNullAttribute 
       reader.ReadToEnd(); 
       reader.Close(); 
       //Context.Response.Write(); 
      } 
      catch (Exception e) 
      { 
       Context.Response.Write(e.ToString()); 
      } 
     } 

это мой толчок код уведомления в ответ сервера side.The я получаю ошибку «System.Net.WebException: Удаленный сервер возвратил ошибку:. (401) Несанкционированное ., пожалуйста, какой-либо один один помощь Спасибо заранее

+0

пожалуйста, любой ответ мне –

+0

попробовать, добавив this..request.UseDefaultCredentials = истина;. request.PreAuthenticate = true; request.Credentials = CredentialCache.DefaultCredentials; – GANI

ответ

0

Попробуйте unsing сессии на вашем веб-метод

[WebMethod(true)] 
Смежные вопросы