From f2ba8af15e931c2e92fba83791214bff92f470b1 Mon Sep 17 00:00:00 2001 From: Luke Bakken Date: Wed, 16 May 2012 17:51:21 -0700 Subject: [PATCH 1/2] Add ability to set Host and Date when built for .NET 4.0 --- RestSharp/Http.cs | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/RestSharp/Http.cs b/RestSharp/Http.cs index ebedfb504..9ca9df378 100644 --- a/RestSharp/Http.cs +++ b/RestSharp/Http.cs @@ -181,7 +181,19 @@ private void AddSharedHeaderActions() _restrictedHeaderActions.Add("Accept", (r, v) => r.Accept = v); _restrictedHeaderActions.Add("Content-Type", (r, v) => r.ContentType = v); _restrictedHeaderActions.Add("Date", (r, v) => { /* Set by system */ }); +#if NET4 + _restrictedHeaderActions.Add("Date", (r, v) => + { + DateTime parsed; + if (DateTime.TryParse(v, out parsed)) + { + r.Date = parsed; + } + }); + _restrictedHeaderActions.Add("Host", (r, v) => r.Host = v); +#else _restrictedHeaderActions.Add("Host", (r, v) => { /* Set by system */ }); +#endif #if FRAMEWORK _restrictedHeaderActions.Add("Range", (r, v) => { AddRange(r, v); }); #endif @@ -239,7 +251,7 @@ private void AppendCookies(HttpWebRequest webRequest) foreach (var httpCookie in Cookies) { #if FRAMEWORK - var cookie = new Cookie + var cookie = new Cookie { Name = httpCookie.Name, Value = httpCookie.Value, @@ -247,7 +259,7 @@ private void AppendCookies(HttpWebRequest webRequest) }; webRequest.CookieContainer.Add(cookie); #else - var cookie = new Cookie + var cookie = new Cookie { Name = httpCookie.Name, Value = httpCookie.Value @@ -255,7 +267,7 @@ private void AppendCookies(HttpWebRequest webRequest) var uri = webRequest.RequestUri; webRequest.CookieContainer.Add(new Uri(string.Format("{0}://{1}", uri.Scheme, uri.Host)), cookie); #endif - } + } } private string EncodeParameters() @@ -325,12 +337,12 @@ private static void ExtractResponseData(HttpResponse response, HttpWebResponse w response.ContentType = webResponse.ContentType; response.ContentLength = webResponse.ContentLength; #if WINDOWS_PHONE - if (string.Equals(webResponse.Headers[HttpRequestHeader.ContentEncoding], "gzip", StringComparison.OrdinalIgnoreCase)) - response.RawBytes = new GZipStream(webResponse.GetResponseStream()).ReadAsBytes(); - else - response.RawBytes = webResponse.GetResponseStream().ReadAsBytes(); + if (string.Equals(webResponse.Headers[HttpRequestHeader.ContentEncoding], "gzip", StringComparison.OrdinalIgnoreCase)) + response.RawBytes = new GZipStream(webResponse.GetResponseStream()).ReadAsBytes(); + else + response.RawBytes = webResponse.GetResponseStream().ReadAsBytes(); #else - response.RawBytes = webResponse.GetResponseStream().ReadAsBytes(); + response.RawBytes = webResponse.GetResponseStream().ReadAsBytes(); #endif //response.Content = GetString(response.RawBytes); response.StatusCode = webResponse.StatusCode; From 057bd857806b1919b694534075f2da365e9c76ef Mon Sep 17 00:00:00 2001 From: Luke Bakken Date: Thu, 17 May 2012 09:17:57 -0700 Subject: [PATCH 2/2] Move within correct preprocessor directive. --- RestSharp/Http.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RestSharp/Http.cs b/RestSharp/Http.cs index 9ca9df378..502276593 100644 --- a/RestSharp/Http.cs +++ b/RestSharp/Http.cs @@ -180,7 +180,6 @@ private void AddSharedHeaderActions() { _restrictedHeaderActions.Add("Accept", (r, v) => r.Accept = v); _restrictedHeaderActions.Add("Content-Type", (r, v) => r.ContentType = v); - _restrictedHeaderActions.Add("Date", (r, v) => { /* Set by system */ }); #if NET4 _restrictedHeaderActions.Add("Date", (r, v) => { @@ -192,6 +191,7 @@ private void AddSharedHeaderActions() }); _restrictedHeaderActions.Add("Host", (r, v) => r.Host = v); #else + _restrictedHeaderActions.Add("Date", (r, v) => { /* Set by system */ }); _restrictedHeaderActions.Add("Host", (r, v) => { /* Set by system */ }); #endif #if FRAMEWORK