diff --git a/lib/webmock/http_lib_adapters/httpclient_adapter.rb b/lib/webmock/http_lib_adapters/httpclient_adapter.rb index 4286831f..590e51ba 100644 --- a/lib/webmock/http_lib_adapters/httpclient_adapter.rb +++ b/lib/webmock/http_lib_adapters/httpclient_adapter.rb @@ -157,14 +157,14 @@ def build_webmock_response(httpclient_response, body = nil) end def build_request_signature(req, reuse_existing = false) - uri = WebMock::Util::URI.heuristic_parse(req.header.request_uri.to_s) - uri.query = WebMock::Util::QueryMapper.values_to_query(req.header.request_query, notation: WebMock::Config.instance.query_values_notation) if req.header.request_query - uri.port = req.header.request_uri.port - @request_filter.each do |filter| filter.filter_request(req) end + uri = WebMock::Util::URI.heuristic_parse(req.header.request_uri.to_s) + uri.query = WebMock::Util::QueryMapper.values_to_query(req.header.request_query, notation: WebMock::Config.instance.query_values_notation) if req.header.request_query + uri.port = req.header.request_uri.port + headers = req.header.all.inject({}) do |hdrs, header| hdrs[header[0]] ||= [] hdrs[header[0]] << header[1] diff --git a/spec/acceptance/httpclient/httpclient_spec.rb b/spec/acceptance/httpclient/httpclient_spec.rb index 97602564..2e1e166b 100644 --- a/spec/acceptance/httpclient/httpclient_spec.rb +++ b/spec/acceptance/httpclient/httpclient_spec.rb @@ -102,6 +102,7 @@ class Filter def filter_request(request) request.header["Authorization"] = "Bearer 0123456789" + request.header.request_uri.query = "webmock=here" end def filter_response(request, response) @@ -112,7 +113,9 @@ def filter_response(request, response) before do @client = HTTPClient.new @client.request_filter << Filter.new - stub_request(:get, 'www.example.com').with(headers: {'Authorization' => 'Bearer 0123456789'}) + stub_request(:get, 'www.example.com').with( + query: {'webmock' => 'here'}, + headers: {'Authorization' => 'Bearer 0123456789'}) end it "supports request filters" do