From 011f8746d6d2099f82a0d9f7201e89e4b22641bf Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Mon, 12 Dec 2011 18:17:39 +0100 Subject: [PATCH] Fixed HTTP client callers --- .../client/src/restbuck_client.e | 102 +++++++----------- .../http_client/src/http_client_response.e | 9 +- 2 files changed, 44 insertions(+), 67 deletions(-) diff --git a/examples/restbucksCRUD/client/src/restbuck_client.e b/examples/restbucksCRUD/client/src/restbuck_client.e index 2e0cd8b2..6fb7211a 100644 --- a/examples/restbucksCRUD/client/src/restbuck_client.e +++ b/examples/restbucksCRUD/client/src/restbuck_client.e @@ -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 diff --git a/library/client/http_client/src/http_client_response.e b/library/client/http_client/src/http_client_response.e index 5685ff73..6c723da1 100644 --- a/library/client/http_client/src/http_client_response.e +++ b/library/client/http_client/src/http_client_response.e @@ -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