コード例 #1
0
        private static NotificationResponse SendMessage(string strUri, byte[] message, NotificationType notificationType)
        {
            NotificationResponse notResponse = new NotificationResponse();
            Uri uri = new Uri(strUri);

            var request = (HttpWebRequest)WebRequest.Create(uri);

            request.Method        = WebRequestMethods.Http.Post;
            request.ContentType   = "text/xml";
            request.ContentLength = message.Length;

            request.Headers.Add("X-MessageID", Guid.NewGuid().ToString());

            switch (notificationType)
            {
            case NotificationType.Toast:
                request.Headers["X-WindowsPhone-Target"] = "toast";
                request.Headers.Add("X-NotificationClass", ((int)BatchingInterval.ToastImmediately).ToString());
                break;

            case NotificationType.Tile:
                request.Headers["X-WindowsPhone-Target"] = "token";
                request.Headers.Add("X-NotificationClass", ((int)BatchingInterval.TileImmediately).ToString());
                break;

            default:
                request.Headers.Add("X-NotificationClass", ((int)BatchingInterval.RawImmediately).ToString());
                break;
            }

            try
            {
                using (var requestStream = request.GetRequestStream())
                {
                    requestStream.Write(message, 0, message.Length);
                }
                var response = (HttpWebResponse)request.GetResponse();

                var notificationStatus     = response.Headers["X-NotificationStatus"];
                var subscriptionStatus     = response.Headers["X-SubscriptionStatus"];
                var deviceConnectionStatus = response.Headers["X-DeviceConnectionStatus"];

                notResponse.NotificationStatus     = notificationStatus;
                notResponse.SubscriptionStatus     = subscriptionStatus;
                notResponse.DeviceConnectionStatus = deviceConnectionStatus;
            }
            catch (WebException ex)
            {
                notResponse.DeviceConnectionStatus = ex.ToString();
            }
            return(notResponse);
        }
コード例 #2
0
        private static NotificationResponse SendMessage(string strUri, byte[] message, NotificationType notificationType)
        {
            NotificationResponse notResponse = new NotificationResponse();
            Uri uri = new Uri(strUri);

            var request = (HttpWebRequest)WebRequest.Create(uri);
            request.Method = WebRequestMethods.Http.Post;
            request.ContentType = "text/xml";
            request.ContentLength = message.Length;

            request.Headers.Add("X-MessageID", Guid.NewGuid().ToString());

            switch (notificationType)
            {
                case NotificationType.Toast:
                    request.Headers["X-WindowsPhone-Target"] = "toast";
                    request.Headers.Add("X-NotificationClass", ((int)BatchingInterval.ToastImmediately).ToString());
                    break;
                case NotificationType.Tile:
                    request.Headers["X-WindowsPhone-Target"] = "token";
                    request.Headers.Add("X-NotificationClass", ((int)BatchingInterval.TileImmediately).ToString());
                    break;
                default:
                    request.Headers.Add("X-NotificationClass", ((int)BatchingInterval.RawImmediately).ToString());
                    break;
            }

            try
            {
                using (var requestStream = request.GetRequestStream())
                {
                    requestStream.Write(message, 0, message.Length);
                }
                var response = (HttpWebResponse)request.GetResponse();

                var notificationStatus = response.Headers["X-NotificationStatus"];
                var subscriptionStatus = response.Headers["X-SubscriptionStatus"];
                var deviceConnectionStatus = response.Headers["X-DeviceConnectionStatus"];

                notResponse.NotificationStatus = notificationStatus;
                notResponse.SubscriptionStatus = subscriptionStatus;
                notResponse.DeviceConnectionStatus = deviceConnectionStatus;
            }
            catch (WebException ex)
            {
                notResponse.DeviceConnectionStatus = ex.ToString();
            }
            return notResponse;
        }