[system.net.http] Accept header with multiple values. Fixes #27352
[mono.git] / mcs / class / System.Net.Http / System.Net.Http.Headers / HttpRequestHeaders.cs
index 6f12f18cc88001dc34f09085dde620da185e6dfd..4f6ceeef8e96102c57d94a4f3714ec3ea9fd6b3c 100644 (file)
@@ -117,7 +117,7 @@ namespace System.Net.Http.Headers
                                return GetValue<DateTimeOffset?> ("Date");
                        }
                        set {
-                               AddOrRemove ("Date", value);
+                               AddOrRemove ("Date", value, Parser.DateTime.ToString);
                        }
                }
 
@@ -132,7 +132,7 @@ namespace System.Net.Http.Headers
                                if (expectContinue.HasValue)
                                        return expectContinue;
 
-                               var found = TransferEncoding.Find (l => StringComparer.OrdinalIgnoreCase.Equals (l.Value, "100-continue"));
+                               var found = TransferEncoding.Find (l => string.Equals (l.Value, "100-continue", StringComparison.OrdinalIgnoreCase));
                                return found != null ? true : (bool?) null;
                        }
                        set {
@@ -180,7 +180,7 @@ namespace System.Net.Http.Headers
                                return GetValue<DateTimeOffset?> ("If-Modified-Since");
                        }
                        set {
-                               AddOrRemove ("If-Modified-Since", value);
+                               AddOrRemove ("If-Modified-Since", value, Parser.DateTime.ToString);
                        }
                }
 
@@ -204,7 +204,7 @@ namespace System.Net.Http.Headers
                                return GetValue<DateTimeOffset?> ("If-Unmodified-Since");
                        }
                        set {
-                               AddOrRemove ("If-Unmodified-Since", value);
+                               AddOrRemove ("If-Unmodified-Since", value, Parser.DateTime.ToString);
                        }
                }
 
@@ -273,7 +273,7 @@ namespace System.Net.Http.Headers
                                if (transferEncodingChunked.HasValue)
                                        return transferEncodingChunked;
 
-                               var found = TransferEncoding.Find (l => StringComparer.OrdinalIgnoreCase.Equals (l.Value, "chunked"));
+                               var found = TransferEncoding.Find (l => string.Equals (l.Value, "chunked", StringComparison.OrdinalIgnoreCase));
                                return found != null ? true : (bool?) null;
                        }
                        set {
@@ -311,5 +311,12 @@ namespace System.Net.Http.Headers
                                return GetValues<WarningHeaderValue> ("Warning");
                        }
                }
+
+               internal void AddHeaders (HttpRequestHeaders headers)
+               {
+                       foreach (var header in headers) {
+                               TryAddWithoutValidation (header.Key, header.Value);
+                       }
+               }
        }
 }