안녕하세요~ 작은나무입니다!!
모바일 안드로이드 앱에 웹 관리자가 Push Notification을 보내기 위해 아래와 같은 소스를 작성하였습니다.
void AndroidPush_Message(string HostName, int Port, string APPID, string Authorization, string PushNumber, string Message)
{
WebRequest tRequest;
tRequest = WebRequest.Create(HostName);
tRequest.Method = "post";
tRequest.ContentType = "application/x-www-form-urlencoded";
tRequest.Headers.Add(string.Format("Authorization: key={0}", Authorization));
tRequest.Headers.Add(string.Format("Sender: id={0}", APPID));
string postData = "collapse_key=push_update";
postData += "&data.message=" + GetEncodeMsg(Message);
postData += "&data.time=" + System.DateTime.Now.ToString();
postData += "®istration_id=" + PushNumber;
Console.WriteLine("postData : " + postData);
Byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(postData);
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();
Console.WriteLine("sResponseFromServer : " + sResponseFromServer);
//Error=InvalidRegistration =>Reg_ID가 이상해
//Error=NotRegistered =>앱이 삭제 되었거나 기타등등으로 존재하지 않는 Reg_ID다 ( DB에서 삭제 처리 해야 됨)
int l_iReturnValue = -1;
if (sResponseFromServer == "Error=MissingRegistration" || sResponseFromServer == "Error=NotRegistered" || sResponseFromServer.ToLower().IndexOf("registration_id=") >-1)
{
AppInfoData data = new AppInfoData();
l_iReturnValue = data.SetDeviceInfoDel(PushNumber, APPID, "G");
}
tReader.Close();
dataStream.Close();
tResponse.Close();
}