GCM Rücksendung Fehlende Fehler bei der Registrierung
Ich bin mit c# webservices übergeben Registrierungs-ids zu GCM. Ich habe zwei android-Handys, und ich habe gültige Registrierungs-ids.Wenn ich den pass einzeln GCm zurück keine Fehler und-Geräte benachrichtigt werden.Aber wenn ich versuche Sie zu übergeben zusammen als JSON-ich bin immer Fehler wie "Error = missing registration".
Folgenden ist der code von meinem webservice, der geht registtration ids zu GCM..
public string Notify(string deviceId, string message)
{
WebRequest tRequest;
tRequest = WebRequest.Create("https://android.googleapis.com/gcm/send");
tRequest.Method = "post";
tRequest.ContentType = " application/x-www-form-urlencoded;charset=UTF-8";
// tRequest.Headers.Add(string.Format("Authorization: key={0}", GoogleAppID));
tRequest.Headers.Add(HttpRequestHeader.Authorization, "key=AIzaSyCUJX_f_NZzYbigWMDK9U5vkzZ9mPiK8jA");
tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID));
int count = 2;
SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["Login"]);
conn.Open();
string send_notification = "select RegId from REG_ID ";//where RegId <> '"+deviceId+"'";
SqlCommand cmd2 = new SqlCommand(send_notification, conn);
DataSet ds2 = new DataSet();
SqlDataAdapter adapter2 = new SqlDataAdapter(cmd2);
adapter2.Fill(ds2);
int count1 = ds2.Tables[0].Rows.Count;
registration[] r = new registration[count1];
for (int i = 0; i < count1; i++)
{
r[i] = new registration();
r[i].registration_ids = ds2.Tables[0].Rows[i]["RegId"].ToString();
}
JavaScriptSerializer js = new JavaScriptSerializer();
string strJson = js.Serialize(r);
string postData = /*"collapse_key=score_update&time_to_live=108&delay_while_idle=1&*/"data.message=" + message + "&data.time=" + System.DateTime.Now.ToString() + "®istration_id= "+ deviceId + "";
Console.WriteLine(strJson);
Byte[] byteArray = Encoding.UTF8.GetBytes(strJson);
tRequest.ContentLength = byteArray.Length;
Stream dataStream = tRequest.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse tResponse = tRequest.GetResponse();
dataStream = tResponse.GetResponseStream();
StreamReader tReader = new StreamReader(dataStream);
String sResponseFromServer = tReader.ReadToEnd();
tReader.Close();
dataStream.Close();
tResponse.Close();
return sResponseFromServer;
}
Ich bin neu in der Entwicklung und fehlt möglicherweise etwas ganz einfaches. Jede Hilfe wird sehr geschätzt..Danke im Voraus
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre JSON sollte wie folgt Aussehen :
application/json
.strJson
enthält, so kann ich nicht sagen, ob es gültig ist.postData
variable zu stammen scheint, zu der nur-text-format, aber Sie don ' T verwenden Sie es trotzdem.