Stop modifying HttpClient.DefaultRequestHeaders#2363
Conversation
Move Expect100Continue from HttpClient.DefaultRequestHeaders to per-request HttpRequestMessage.Headers so that shared HttpClient instances are not mutated by RestClient configuration. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Review Summary by QodoStop modifying HttpClient.DefaultRequestHeaders
WalkthroughsDescription• Remove ConfigureHttpClient method that mutated shared HttpClient.DefaultRequestHeaders • Move Expect100Continue setting from HttpClient to per-request HttpRequestMessage.Headers • Prevent modification of shared HttpClient instances across multiple RestClient instances • Add tests verifying HttpClient.DefaultRequestHeaders remain unmodified Diagramflowchart LR
A["RestClient Configuration"] -->|Previously| B["Modified HttpClient.DefaultRequestHeaders"]
A -->|Now| C["Per-Request HttpRequestMessage.Headers"]
B -->|Issue| D["Shared HttpClient Mutation"]
C -->|Solution| E["Isolated Request Configuration"]
File Changes1. src/RestSharp.Extensions.DependencyInjection/ServiceCollectionExtensions.cs
|
Code Review by Qodo
1.
|
Deploying restsharp with
|
| Latest commit: |
d310886
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://3dc9e9bf.restsharp.pages.dev |
| Branch Preview URL: | https://2156-do-not-modify-default-h.restsharp.pages.dev |
Test Results 42 files 42 suites 17m 42s ⏱️ Results for commit d310886. ♻️ This comment has been updated with latest results. |
Apply Options.Expect100Continue to HttpRequestMessages created during redirect handling, matching the behavior of the initial request. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|



Summary
Closes #2156
ConfigureHttpClientmethod that was settingExpectContinueonHttpClient.DefaultRequestHeaders, which mutated sharedHttpClientinstancesExpect100Continueto per-requestHttpRequestMessage.Headers.ExpectContinueinExecuteRequestAsync.ConfigureHttpClient(...)delegate from the DI extensionThis completes the work started when
UserAgentwas moved toDefaultParameters. RestSharp no longer modifiesHttpClient.DefaultRequestHeadersat all.Test plan
HttpClientdefault headers are not modified whenExpect100Continueis setHttpClientdefault headers are not modified whenExpect100Continueis set🤖 Generated with Claude Code