diff --git a/lib/savon/request.rb b/lib/savon/request.rb index 1b3a1189..a563ef43 100644 --- a/lib/savon/request.rb +++ b/lib/savon/request.rb @@ -55,12 +55,19 @@ class WSDLRequest < HTTPRequest def build configure_proxy configure_timeouts + configure_headers configure_ssl configure_auth configure_redirect_handling @http_request end + + private + + def configure_headers + @http_request.headers = @globals[:headers] if @globals.include? :headers + end end class SOAPRequest < HTTPRequest diff --git a/spec/savon/request_spec.rb b/spec/savon/request_spec.rb index 6da3712b..03bdde5e 100644 --- a/spec/savon/request_spec.rb +++ b/spec/savon/request_spec.rb @@ -16,6 +16,20 @@ def new_wsdl_request expect(wsdl_request.build).to be_an(HTTPI::Request) end + describe "headers" do + it "are set when specified" do + globals.headers("Proxy-Authorization" => "Basic auth") + configured_http_request = new_wsdl_request.build + + expect(configured_http_request.headers["Proxy-Authorization"]).to eq("Basic auth") + end + + it "are not set otherwise" do + configured_http_request = new_wsdl_request.build + expect(configured_http_request.headers).to_not include("Proxy-Authorization") + end + end + describe "proxy" do it "is set when specified" do globals.proxy("http://proxy.example.com")