Пример #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Requester"/> class.
        /// </summary>
        /// <param name="feedback">The <see cref="SentryUserFeedback"/> to initialize with.</param>
        /// <param name="ravenClient">The <see cref="RavenClient"/> to initialize with.</param>
        internal Requester(SentryUserFeedback feedback, RavenClient ravenClient)
        {
            if (feedback == null)
            {
                throw new ArgumentNullException("feedback");
            }

            if (ravenClient == null)
            {
                throw new ArgumentNullException("ravenClient");
            }

            this.ravenClient = ravenClient;
            this.feedback    = feedback;

            var feedbackString = string.Format("{0}?dsn={1}&{2}",
                                               ravenClient.CurrentDsn.FeedbackUri,
                                               ravenClient.CurrentDsn.Uri,
                                               feedback.ToString());

            this.webRequest         = CreateWebRequest(new Uri(feedbackString));
            this.webRequest.Referer = ravenClient.CurrentDsn.Uri.DnsSafeHost;

            this.webRequest.ContentType = "application/x-www-form-urlencoded";
        }
Пример #2
0
        /// <summary>
        /// Sends the user feedback to sentry
        /// </summary>
        /// <returns>An empty string if succesful, otherwise the server response</returns>
        public string SendFeedback()
        {
            using (var s = this.webRequest.GetRequestStream())
            {
                using (var sw = new StreamWriter(s))
                {
                    sw.Write(feedback.ToString());
                }
            }
            using (var wr = (HttpWebResponse)this.webRequest.GetResponse())
            {
                using (var responseStream = wr.GetResponseStream())
                {
                    if (responseStream == null)
                    {
                        return(null);
                    }

                    using (var sr = new StreamReader(responseStream))
                    {
                        var response = sr.ReadToEnd();
                        return(response);
                    }
                }
            }
        }