public void SendNotification(ProwlNotification notification)
        {
            notification.Validate();

            var notificationRequestUriString = this.CreateNotificationAddRequestUriString(notification);

            var notificationRequest = HttpWebRequest.Create(notificationRequestUriString);

            notificationRequest.ContentLength = 0;
            notificationRequest.ContentType   = "application/x-www-form-urlencoded";
            notificationRequest.Method        = "POST";

            try
            {
                using (WebResponse response = notificationRequest.GetResponse())
                {
                    var httpResponse = (HttpWebResponse)response;
                    if (httpResponse.StatusCode != HttpStatusCode.OK)
                    {
                        throw new WebException(httpResponse.StatusDescription);
                    }
                }
            }
            catch (WebException e)
            {
                using (WebResponse response = e.Response)
                {
                    HttpWebResponse httpResponse = (HttpWebResponse)response;
                    throw new InvalidDataException(string.Format("An error occurred whilst sending the notification to Prowl: {0}", httpResponse.StatusDescription));
                }
            }
        }