diff options
author | Stephen Toub <stoub@microsoft.com> | 2020-04-27 23:35:42 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-27 23:35:42 +0300 |
commit | 6d1f7e01d3429054ec3dcb7c75b3450b9fe1429e (patch) | |
tree | f7ac893270cbd91153e379ef32b4bfe8219e8396 | |
parent | 0ce44af8241fafb5c6080b111cc00391308db681 (diff) |
add correct value when cloning http headers (#35498) (#35510)
* add correct value when cloning http headers
* Address PR feedback
Co-authored-by: Tomas Weinfurt <furt@Shining.local>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Tomas Weinfurt <tweinfurt@yahoo.com>
Co-authored-by: Tomas Weinfurt <furt@Shining.local>
-rw-r--r-- | src/libraries/System.Net.Http/src/System/Net/Http/Headers/HttpHeaders.cs | 2 | ||||
-rw-r--r-- | src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Headers.cs | 27 |
2 files changed, 28 insertions, 1 deletions
diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/Headers/HttpHeaders.cs b/src/libraries/System.Net.Http/src/System/Net/Http/Headers/HttpHeaders.cs index 7ba6b353240..ac0849f5824 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/Headers/HttpHeaders.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/Headers/HttpHeaders.cs @@ -161,7 +161,7 @@ namespace System.Net.Http.Headers else { // The header store did not contain the header. Add the raw string. - _headerStore.Add(descriptor, _forceHeaderStoreItems ? new HeaderStoreItemInfo { RawValue = currentValue } : (object)value); + _headerStore.Add(descriptor, _forceHeaderStoreItems ? new HeaderStoreItemInfo { RawValue = value } : (object)value); } return true; diff --git a/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Headers.cs b/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Headers.cs index b66becd57b4..48cc1cee5f2 100644 --- a/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Headers.cs +++ b/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Headers.cs @@ -45,6 +45,33 @@ namespace System.Net.Http.Functional.Tests }); } + [Fact] + public async Task SendAsync_DefaultHeaders_CorrectlyWritten() + { + const string Version = "2017-04-17"; + const string Blob = "BlockBlob"; + + await LoopbackServerFactory.CreateClientAndServerAsync(async uri => + { + using (HttpClient client = CreateHttpClient()) + { + client.DefaultRequestHeaders.TryAddWithoutValidation("x-ms-version", Version); + client.DefaultRequestHeaders.Add("x-ms-blob-type", Blob); + var message = new HttpRequestMessage(HttpMethod.Get, uri) { Version = UseVersion }; + (await client.SendAsync(message).ConfigureAwait(false)).Dispose(); + } + }, + async server => + { + HttpRequestData requestData = await server.HandleRequestAsync(HttpStatusCode.OK); + + string headerValue = requestData.GetSingleHeaderValue("x-ms-blob-type"); + Assert.Equal(Blob, headerValue); + headerValue = requestData.GetSingleHeaderValue("x-ms-version"); + Assert.Equal(Version, Version); + }); + } + [Theory] [InlineData("\u05D1\u05F1")] [InlineData("jp\u30A5")] |