class type http_call =The container for HTTP callsobject
..end
http_call
is the runtime container for HTTP method calls. It contains
the request message, the response message, and the current transmission
status.
In previous versions of netclient, this class type was called
message
. This was quite inexact because this class embraces both
messages that are part of a call.
Incompatible changes:
using_proxy
has been removed. This simply isn't a property of
an individual call.get_req_uri
has been removed from the public interface for similar
reasons.Netmime.mime_header
and Netmime.mime_body
objects. The old
style access methods remain in the API for now. The advantage is
that it is possible to use external files as body containers.`Base
and `Effective
.method is_served : bool
true
if request/response cycle(s) have been finished, i.e. the
call was successful, or a final error state has been reached.method status : status
method request_method : string
method request_uri : string
method set_request_uri : string -> unit
method request_header : header_kind -> Netmime.mime_header
`Base
header. After the call has been processed,
the `Effective
header contains the version of the header that has
actually been transmitted.
The user should set the following headers:
Content-length
: Set this to the length of the request body
if known. (The client falls back to HTTP 1.0 if not set!)Content-type
: Set this to the media type of the request bodyExpect
: Set this to "100-continue" to enable a handshake before
the body is sent. Recommended for large bodies.Date
User-agent
Connection
method set_request_header : Netmime.mime_header -> unit
`Base
header objectmethod effective_request_uri : string
method request_body : Netmime.mime_body
method set_request_body : Netmime.mime_body -> unit
These methods will fail if the call has not yet been served!
If the call has been finished, but a hard error (e.g. socket error)
occurred, the
exception Http_protocol
is raised. When the server only
sent an error code, no exception is raised - but the user can
manually test for such codes (e.g. with repsonse_status
or
status
).
method response_status_code : int
method response_status_text : string
method response_status : Nethttp.http_status
`Ok
, `Multiple_choices
, `Bad_request
, and
`Internal_server_error
.method response_protocol : string
method response_header : Netmime.mime_header
Http_protocol
will be raised.method response_body : Netmime.mime_body
Http_protocol
will be raised. If the call has succeeded,
but no body has been transmitted, the empty body is substituted.method response_body_storage : response_body_storage
`Memory
.method set_response_body_storage : response_body_storage -> unit
method get_reconnect_mode : http_call how_to_reconnect
Send_again_if_idem
.method set_reconnect_mode : http_call how_to_reconnect -> unit
method get_redirect_mode : http_call how_to_redirect
Redirect_if_idem
.method set_redirect_mode : http_call how_to_redirect -> unit
method proxy_enabled : bool
method set_proxy_enabled : bool -> unit
method no_proxy : unit -> unit
set_proxy_enabled false
method is_proxy_allowed : unit -> bool
proxy_enabled
These properties describe the HTTP method
method empty_path_replacement : string
method is_idempotent : bool
method has_req_body : bool
method has_resp_body : bool
method same_call : unit -> http_call
`Unserved
These method were introduced in previous versions of netclient, but are quite limited. Some questionable methods are now deprecated and will be removed in future versions of netclient.
method get_req_method : unit -> string
request_method
.method get_host : unit -> string
method get_port : unit -> int
method get_path : unit -> string
method get_uri : unit -> string
request_uri
.method get_req_body : unit -> string
request_body # value
.method get_req_header : unit -> (string * string) list
In new code, the request_header
object should be accessed instead.
method assoc_req_header : string -> string
Not_found
method assoc_multi_req_header : string -> string list
method set_req_header : string -> string -> unit
method get_resp_header : unit -> (string * string) list
method assoc_resp_header : string -> string
method assoc_multi_resp_header : string -> string list
method get_resp_body : unit -> string
Otherwise, Http_error (code, body) is raised where 'code' is
the response code and 'body' is the body of the (errorneous)
response.
method dest_status : unit -> string * int * string
method private_api : private_api