Http_client: module { PATH: con "/dis/lib/http_client.dis"; cookies : string; Request: adt { host : string; method : string; uri : string; http_version : string; user_agent : string; headers : array of string; body : array of byte; # bytes : fn (r: self ref Request) : array of byte; }; Response: adt { status : list of string; content_type : string; headers : string; body : array of byte; last_modified : string; # can't be bothered to write a strftime parser content_length : int; read : fn(bio : ref Bufio->Iobuf) : ref Response; to_string : fn(r : self ref Response) : string; }; Connection : adt { c : ref Sys->Connection; read_response : fn(c: self ref Connection) : ref Response; # GET : fn(c : self ref Connection, host, uri, http_version : string, headers : array of string) : ref Response; }; POST : fn(bio : ref Bufio->Iobuf, host, uri, http_version : string, headers : list of string, body : array of byte); new_connection:fn(dialstring : string) : ref Connection; urlencode : fn(unencoded : string) : string; };