У меня есть приложение для Android с бэкэнд ASP.NET. У меня есть registration_id для телефона, а также токен аутентификации из Google для сервера приложений, который выполняет push.Android C2DM получение (401) Неавторизованный
Когда я делаю запрос на отправку HTTP на C2DM, чтобы телефон получил сообщение, я продолжаю получать 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, 0, 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();
Любая помощь будет очень признательна.
Я предполагаю, что я чувствую, что, может быть, я делаю заголовок Authorization неправильно, но я не могу найти ни одного примера заголовки для этой службы в Интернете. –
Или, может быть, я не правильно кодирую заголовок? Я действительно думаю, что это как-то связано с заголовком авторизации. –
Можете ли вы поделиться некоторым кодом о том, как вы получаете токен OAuth, используя .NET? – katit