Skip to content

Commit b8a451d

Browse files
committed
First step in adding headers to the response
1 parent 6cf2b89 commit b8a451d

File tree

4 files changed

+32
-2
lines changed

4 files changed

+32
-2
lines changed

lib/http_client/response.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
module HTTP
22
class Response
3-
attr_reader :body, :status_code
3+
attr_reader :body, :status_code, :headers
44

55
def initialize(native_response)
66
@status_code = native_response.status_line.status_code
77
@body = EntityUtils.to_string(native_response.entity)
8+
9+
@headers = native_response.all_headers.inject({}) do |map, header|
10+
map[header.name] = header.value
11+
map
12+
end
813
end
914
end
1015

test/http_client/test_client_headers.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require 'helper'
22

3-
class TestClientHeaders < Test::Unit::TestCase
3+
class ClientHeadersTest < Test::Unit::TestCase
44
def test_get_headers
55
get = HTTP::Get.new("/echo_header")
66
get.add_headers(:test_header => "get testing")
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
require 'helper'
2+
3+
class ServerHeadersTest < Test::Unit::TestCase
4+
def test_response_contains_server_headers
5+
get = HTTP::Get.new("/set_header")
6+
response = @client.execute(get)
7+
8+
assert_equal("FooBar", response.headers["Test-Header"])
9+
end
10+
11+
def setup
12+
@client = HTTP::Client.new(:default_host => "http://localhost:8080")
13+
end
14+
15+
def teardown
16+
@client.shutdown
17+
end
18+
end

test/http_test_server.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,16 @@ def self.start_server
1111
SERVER.mount('/redirect', RedirectServlet)
1212
SERVER.mount('/set_cookie', SetCookieServlet)
1313
SERVER.mount('/echo_cookie', EchoCookieServlet)
14+
SERVER.mount('/set_header', SetHeaderServlet)
1415
Thread.new { SERVER.start }
1516
end
1617

18+
class SetHeaderServlet < WEBrick::HTTPServlet::AbstractServlet
19+
def do_GET(request, response)
20+
response["Test-Header"] = "FooBar"
21+
end
22+
end
23+
1724
class SetCookieServlet < WEBrick::HTTPServlet::AbstractServlet
1825
def do_GET(request, response)
1926
response.cookies << WEBrick::Cookie.new("test_cookie", request.query['cookie'])

0 commit comments

Comments
 (0)