mirror of
https://github.com/rest-client/rest-client.git
synced 2022-11-09 13:49:40 -05:00
Warn if payload headers override previous headers.
When rest-client overrides existing headers due to headers generated from the HTTP payload, warn the user that there is a conflict. This is often caused by user error due to confusing rest-client API and docs.
This commit is contained in:
parent
3ce92ef81f
commit
f17b8b6dd9
1 changed files with 20 additions and 1 deletions
|
@ -432,7 +432,26 @@ module RestClient
|
||||||
#
|
#
|
||||||
def make_headers(user_headers)
|
def make_headers(user_headers)
|
||||||
headers = stringify_headers(default_headers).merge(stringify_headers(user_headers))
|
headers = stringify_headers(default_headers).merge(stringify_headers(user_headers))
|
||||||
headers.merge!(@payload.headers) if @payload
|
|
||||||
|
# override headers from the payload (e.g. Content-Type, Content-Length)
|
||||||
|
if @payload
|
||||||
|
payload_headers = @payload.headers
|
||||||
|
|
||||||
|
# Warn the user if we override any headers that were previously
|
||||||
|
# present. This usually indicates that rest-client was passed
|
||||||
|
# conflicting information, e.g. if it was asked to render a payload as
|
||||||
|
# x-www-form-urlencoded but a Content-Type application/json was
|
||||||
|
# also supplied by the user.
|
||||||
|
payload_headers.each_pair do |key, val|
|
||||||
|
if headers.include?(key)
|
||||||
|
warn("warning: Overriding #{key.inspect} header " +
|
||||||
|
"#{headers.fetch(key).inspect} with #{val.inspect} " +
|
||||||
|
"due to payload")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
headers.merge!(payload_headers)
|
||||||
|
end
|
||||||
|
|
||||||
# merge in cookies
|
# merge in cookies
|
||||||
cookies = make_cookie_header
|
cookies = make_cookie_header
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue