Fixed HTTP client callers

This commit is contained in:
Jocelyn Fiat
2011-12-12 18:17:39 +01:00
parent 0335226e8b
commit 011f8746d6
2 changed files with 44 additions and 67 deletions

View File

@@ -29,10 +29,9 @@ feature {NONE} -- Initialization
-- Read the Order
print ("%N Read Order %N")
l_location := resp.headers.at ("Location")
l_location := resp.header ("Location")
resp := read_order (sess, l_location)
-- Update the Order
if attached resp.body as l_body then
@@ -44,63 +43,47 @@ feature {NONE} -- Initialization
end
update_order ( sess: HTTP_CLIENT_SESSION; uri : detachable READABLE_STRING_8; a_body : STRING) : HTTP_CLIENT_RESPONSE
local
l_headers: HASH_TABLE [READABLE_STRING_8,READABLE_STRING_8]
do
create Result.make
if attached uri as l_uri then
sess.set_base_url (l_uri)
Result := sess.put ("", Void, a_body )
if attached Result as r then
-- Show headers
l_headers := r.headers
from
l_headers.start
until
l_headers.after
loop
print (l_headers.key_for_iteration)
print (":")
print (l_headers.item_for_iteration)
l_headers.forth
io.put_new_line
end
-- Show body
print (r.body)
-- Show headers
across
Result.headers as l_headers
loop
print (l_headers.item.name)
print (":")
print (l_headers.item.value)
io.put_new_line
end
-- Show body
print (Result.body)
io.put_new_line
end
end
read_order ( sess: HTTP_CLIENT_SESSION; uri : detachable READABLE_STRING_8) : HTTP_CLIENT_RESPONSE
local
l_headers: HASH_TABLE [READABLE_STRING_8,READABLE_STRING_8]
do
create Result.make
if attached uri as l_uri then
sess.set_base_url (l_uri)
Result := sess.get ("", Void)
if attached Result as r then
-- Show headers
l_headers := r.headers
from
l_headers.start
until
l_headers.after
loop
print (l_headers.key_for_iteration)
print (":")
print (l_headers.item_for_iteration)
l_headers.forth
io.put_new_line
end
-- Show body
print (r.body)
across
Result.headers as l_headers
loop
print (l_headers.item.name)
print (":")
print (l_headers.item.value)
io.put_new_line
end
-- Show body
print (Result.body)
io.put_new_line
end
end
@@ -112,7 +95,6 @@ feature {NONE} -- Initialization
j: JSON_PARSER
id: detachable STRING
context : HTTP_CLIENT_REQUEST_CONTEXT
l_headers: HASH_TABLE [READABLE_STRING_8,READABLE_STRING_8]
do
s := "[
{
@@ -131,32 +113,26 @@ feature {NONE} -- Initialization
create context.make
context.headers.put ("application/json", "Content-Type")
Result := sess.post ("/order", context, s)
if attached Result as r then
-- Show the Headers
l_headers := r.headers
from
l_headers.start
until
l_headers.after
loop
print (l_headers.key_for_iteration)
print (":")
print (l_headers.item_for_iteration)
l_headers.forth
io.put_new_line
end
-- Show the Headers
across
Result.headers as l_headers
loop
print (l_headers.item.name)
print (":")
print (l_headers.item.value)
io.put_new_line
end
-- Show the Response body
if attached r.body as m then
create j.make_parser (m)
if j.is_parsed and attached j.parse_object as j_o then
if attached {JSON_STRING} j_o.item ("id") as l_id then
id := l_id.item
end
print (m)
io.put_new_line
-- Show the Response body
if attached Result.body as m then
create j.make_parser (m)
if j.is_parsed and attached j.parse_object as j_o then
if attached {JSON_STRING} j_o.item ("id") as l_id then
id := l_id.item
end
print (m)
io.put_new_line
end
end
end

View File

@@ -1,6 +1,7 @@
note
description : "Objects that ..."
author : "$Author$"
description : "[
Response retrieved by the client
]"
date : "$Date$"
revision : "$Revision$"
@@ -59,7 +60,7 @@ feature -- Access
across
headers as hds
loop
k := hds.item.key
k := hds.item.name
if k.same_string (a_name) then
v := hds.item.value
if s = Void then
@@ -73,7 +74,7 @@ feature -- Access
Result := s
end
headers: LIST [TUPLE [key: READABLE_STRING_8; value: READABLE_STRING_8]]
headers: LIST [TUPLE [name: READABLE_STRING_8; value: READABLE_STRING_8]]
-- Computed table of http headers of the response.
--| We use a LIST since one might have multiple message-header fields with the same field-name
--| Then the user can handle those case using default or custom concatenation