IT정보사전

[.Net] 안드로이드 푸시 보내기 본문

웹 프로그래밍

[.Net] 안드로이드 푸시 보내기

작은나무0530 2018. 12. 9. 08:30
728x90
반응형

안녕하세요~ 작은나무입니다!!

모바일 안드로이드 앱에 웹 관리자가 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 += "&registration_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();
}

728x90
반응형
그리드형
Comments