Add default headers as request is built in Client::request
#2836
+38
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
As a few people have pointed out in issues it's a bit surprising that the default headers from a
Clientare not added to aRequestbuilt byClient::requestuntil the request is sent. I personally would consider this a bug, not sure about everyone else though! :)My particular use case is using
reqwestboth for sending HTTP requests but also in-memory only during testing (without actually executing the request).Implementation
The implementation is based on piecing together a few comments throughout various issues.
I added the headers in during
Client::request. If the duplication in the async/blocking client is annoying then I could addRequest::new_with_headersor something?I've left the existing merge from
execute_requestfor the code path where someone doesn't use a builder and just passes in aRequestobject directly toClient::execute.I've added a test to
tests/client.rswhich asserts this new behaviour. The header values are copied from the docs.