Skip to content

Commit 759b407

Browse files
committed
Merge pull request #280 from IronFoundry/HostAndDateOnRequest
Add ability to set Host and Date when built for .NET 4.0
2 parents 54d7996 + 057bd85 commit 759b407

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

RestSharp/Http.cs

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,20 @@ private void AddSharedHeaderActions()
180180
{
181181
_restrictedHeaderActions.Add("Accept", (r, v) => r.Accept = v);
182182
_restrictedHeaderActions.Add("Content-Type", (r, v) => r.ContentType = v);
183+
#if NET4
184+
_restrictedHeaderActions.Add("Date", (r, v) =>
185+
{
186+
DateTime parsed;
187+
if (DateTime.TryParse(v, out parsed))
188+
{
189+
r.Date = parsed;
190+
}
191+
});
192+
_restrictedHeaderActions.Add("Host", (r, v) => r.Host = v);
193+
#else
183194
_restrictedHeaderActions.Add("Date", (r, v) => { /* Set by system */ });
184195
_restrictedHeaderActions.Add("Host", (r, v) => { /* Set by system */ });
196+
#endif
185197
#if FRAMEWORK
186198
_restrictedHeaderActions.Add("Range", (r, v) => { AddRange(r, v); });
187199
#endif
@@ -239,23 +251,23 @@ private void AppendCookies(HttpWebRequest webRequest)
239251
foreach (var httpCookie in Cookies)
240252
{
241253
#if FRAMEWORK
242-
var cookie = new Cookie
254+
var cookie = new Cookie
243255
{
244256
Name = httpCookie.Name,
245257
Value = httpCookie.Value,
246258
Domain = webRequest.RequestUri.Host
247259
};
248260
webRequest.CookieContainer.Add(cookie);
249261
#else
250-
var cookie = new Cookie
262+
var cookie = new Cookie
251263
{
252264
Name = httpCookie.Name,
253265
Value = httpCookie.Value
254266
};
255267
var uri = webRequest.RequestUri;
256268
webRequest.CookieContainer.Add(new Uri(string.Format("{0}://{1}", uri.Scheme, uri.Host)), cookie);
257269
#endif
258-
}
270+
}
259271
}
260272

261273
private string EncodeParameters()
@@ -325,12 +337,12 @@ private static void ExtractResponseData(HttpResponse response, HttpWebResponse w
325337
response.ContentType = webResponse.ContentType;
326338
response.ContentLength = webResponse.ContentLength;
327339
#if WINDOWS_PHONE
328-
if (string.Equals(webResponse.Headers[HttpRequestHeader.ContentEncoding], "gzip", StringComparison.OrdinalIgnoreCase))
329-
response.RawBytes = new GZipStream(webResponse.GetResponseStream()).ReadAsBytes();
330-
else
331-
response.RawBytes = webResponse.GetResponseStream().ReadAsBytes();
340+
if (string.Equals(webResponse.Headers[HttpRequestHeader.ContentEncoding], "gzip", StringComparison.OrdinalIgnoreCase))
341+
response.RawBytes = new GZipStream(webResponse.GetResponseStream()).ReadAsBytes();
342+
else
343+
response.RawBytes = webResponse.GetResponseStream().ReadAsBytes();
332344
#else
333-
response.RawBytes = webResponse.GetResponseStream().ReadAsBytes();
345+
response.RawBytes = webResponse.GetResponseStream().ReadAsBytes();
334346
#endif
335347
//response.Content = GetString(response.RawBytes);
336348
response.StatusCode = webResponse.StatusCode;

0 commit comments

Comments
 (0)