note description: "Summary description for {ESA_HTTP_CLIENT_HELPER}." date: "$Date$" revision: "$Revision$" deferred class ESA_HTTP_CLIENT_HELPER feature -- Access port_number : INTEGER = 9999 base_url : STRING = "" feature -- HTTP client http_session: detachable HTTP_CLIENT_SESSION get_http_session local h: LIBCURL_HTTP_CLIENT b: like base_url do create h.make b := base_url if b = Void then b := "" end if attached {HTTP_CLIENT_SESSION} h.new_session ("http://127.0.0.1:" + port_number.out + "/" + b) as sess then http_session := sess sess.set_timeout (-1) sess.set_is_debug (True) sess.set_connect_timeout (-1) -- sess.set_proxy ("127.0.0.1", 8888) --| inspect traffic with http://www.fiddler2.com/ end end adapted_context (ctx: detachable HTTP_CLIENT_REQUEST_CONTEXT): HTTP_CLIENT_REQUEST_CONTEXT do if ctx /= Void then Result := ctx else create Result.make end -- Result.set_proxy ("127.0.0.1", 8888) --| inspect traffic with http://www.fiddler2.com/ end feature -- HTTP client helpers execute_get (command_name: STRING_32): detachable HTTP_CLIENT_RESPONSE do get_http_session if attached http_session as sess then Result := sess.get (command_name, context_executor) end end execute_post (command_name: STRING_32; data: detachable READABLE_STRING_8): detachable HTTP_CLIENT_RESPONSE do get_http_session if attached http_session as sess then Result := sess.post (command_name, context_executor, data) end end execute_delete (command_name: STRING_32): detachable HTTP_CLIENT_RESPONSE do get_http_session if attached http_session as sess then Result := sess.delete (command_name, context_executor) end end execute_put (command_name: STRING_32; data: detachable READABLE_STRING_8): detachable HTTP_CLIENT_RESPONSE do get_http_session if attached http_session as sess then Result := sess.put (command_name, context_executor, data) end end context_executor: HTTP_CLIENT_REQUEST_CONTEXT -- request context for each request deferred end end