Skip to content

Commit 6d1f7e0

Browse files
stephentoubwfurtTomas Weinfurt
authored
add correct value when cloning http headers (#35498) (#35510)
* add correct value when cloning http headers * Address PR feedback Co-authored-by: Tomas Weinfurt <[email protected]> Co-authored-by: Stephen Toub <[email protected]> Co-authored-by: Tomas Weinfurt <[email protected]> Co-authored-by: Tomas Weinfurt <[email protected]>
1 parent 0ce44af commit 6d1f7e0

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

src/libraries/System.Net.Http/src/System/Net/Http/Headers/HttpHeaders.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ internal bool TryAddWithoutValidation(HeaderDescriptor descriptor, string? value
161161
else
162162
{
163163
// The header store did not contain the header. Add the raw string.
164-
_headerStore.Add(descriptor, _forceHeaderStoreItems ? new HeaderStoreItemInfo { RawValue = currentValue } : (object)value);
164+
_headerStore.Add(descriptor, _forceHeaderStoreItems ? new HeaderStoreItemInfo { RawValue = value } : (object)value);
165165
}
166166

167167
return true;

src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Headers.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,33 @@ await LoopbackServerFactory.CreateClientAndServerAsync(async uri =>
4545
});
4646
}
4747

48+
[Fact]
49+
public async Task SendAsync_DefaultHeaders_CorrectlyWritten()
50+
{
51+
const string Version = "2017-04-17";
52+
const string Blob = "BlockBlob";
53+
54+
await LoopbackServerFactory.CreateClientAndServerAsync(async uri =>
55+
{
56+
using (HttpClient client = CreateHttpClient())
57+
{
58+
client.DefaultRequestHeaders.TryAddWithoutValidation("x-ms-version", Version);
59+
client.DefaultRequestHeaders.Add("x-ms-blob-type", Blob);
60+
var message = new HttpRequestMessage(HttpMethod.Get, uri) { Version = UseVersion };
61+
(await client.SendAsync(message).ConfigureAwait(false)).Dispose();
62+
}
63+
},
64+
async server =>
65+
{
66+
HttpRequestData requestData = await server.HandleRequestAsync(HttpStatusCode.OK);
67+
68+
string headerValue = requestData.GetSingleHeaderValue("x-ms-blob-type");
69+
Assert.Equal(Blob, headerValue);
70+
headerValue = requestData.GetSingleHeaderValue("x-ms-version");
71+
Assert.Equal(Version, Version);
72+
});
73+
}
74+
4875
[Theory]
4976
[InlineData("\u05D1\u05F1")]
5077
[InlineData("jp\u30A5")]

0 commit comments

Comments
 (0)