Efl.Net.Dialer_Http (class)

Description

HTTP Dialer (Client).

The effective URL in use, if Efl.Net.Dialer_Http.allow_redirects is true will be available as Efl.Net.Socket.address_remote. The Efl.Net.Socket.address_local is an IP:PORT pair.

The dialer can perform bi-directional information exchanges. It can also do a PUT and upload a file, or GET and download one. It can also do a POST with some form values, including a file, and retrieve its headers and body response. To make usage more streamlined, choose your area of interest with Efl.Net.Dialer_Http.primary_mode then get some properties such as Efl.Io.Sizer.size to report or use the information you need.

If Efl.Net.Dialer_Http.allow_redirects is true, multiple "connected" and "resolved" signals will be dispatched, one for each connection. In this case Efl.Net.Dialer_Http.response_status and Efl.Net.Dialer_Http.response_headers_get will keep changing. Using Efl.Net.Dialer_Http.response_headers_all_get one can see the whole history of headers and connections.

To enable debugging use EINA_LOG_LEVELS=ecore_con:4 environment variable.

If the proxy is NULL (default), then the system proxy will be used. On UNIX that's the environment variable http_proxy (or 'all_proxy') is used if the given address doesn't match no_proxy patterns. To disable proxy use an empty string. If provided, the proxy must use one of the following protocols:

- http://username:password@proxyserver:port - http://username@proxyserver:port - http://proxyserver:port - http://proxyserver (default port 1080) - socks5://username:password@proxyserver:port (SOCKSv5) - socks5h://username@proxyserver:port (let socks server to resolve domain) - socks5://proxyserver:port - socks5://proxyserver (default port 1080) - socks4a://proxyserver:port (SOCKSv4 and let socks server to resolve domain) - socks4://proxyserver:port (SOCKSv4)

Inheritance

Efl.Loop_Consumer (class)Efl.Object (class)

Full hierarchy

Members

address_dial (get, set) protected set [Overridden from Efl.Net.Dialer]

Returns the address given to Efl.Net.Dialer.dial.
const char *efl_net_dialer_address_dial_get(const Eo *obj);
void efl_net_dialer_address_dial_set(Eo *obj, const char *address);


address_local (get, set) protected set [Overridden from Efl.Net.Socket]

The local address, similar to getsockname().
const char *efl_net_socket_address_local_get(const Eo *obj);
void efl_net_socket_address_local_set(Eo *obj, const char *address);


address_remote (get, set) protected set [Overridden from Efl.Net.Socket]

The remote address, similar to getpeername().
const char *efl_net_socket_address_remote_get(const Eo *obj);
void efl_net_socket_address_remote_set(Eo *obj, const char *address);


allow_redirects (get, set)

Allows HTTP redirects to be followed.
Eina_Bool efl_net_dialer_http_allow_redirects_get(const Eo *obj);
void efl_net_dialer_http_allow_redirects_set(Eo *obj, Eina_Bool allow_redirects);


authentication (get, set)

HTTP authentication to use.
void efl_net_dialer_http_authentication_get(const Eo *obj, const char **username, const char **password, Efl_Net_Http_Authentication_Method *method, Eina_Bool *restricted);
void efl_net_dialer_http_authentication_set(Eo *obj, const char *username, const char *password, Efl_Net_Http_Authentication_Method method, Eina_Bool restricted);


can_read (get, set) protected set [Overridden from Efl.Io.Reader]

If true will notify Efl.Io.Reader.read can be called without blocking or failing.
Eina_Bool efl_io_reader_can_read_get(const Eo *obj);
void efl_io_reader_can_read_set(Eo *obj, Eina_Bool can_read);


can_write (get, set) protected set [Overridden from Efl.Io.Writer]

If true will notify Efl.Io.Writer.write can be called without blocking or failing.
Eina_Bool efl_io_writer_can_write_get(const Eo *obj);
void efl_io_writer_can_write_set(Eo *obj, Eina_Bool can_write);


close [Overridden from Efl.Io.Closer]

Closes the Input/Output object.
Eina_Error efl_io_closer_close(Eo *obj);


close_on_exec (get, set) [Overridden from Efl.Io.Closer]

If true will automatically close resources on exec() calls.
Eina_Bool efl_io_closer_close_on_exec_get(const Eo *obj);
Eina_Bool efl_io_closer_close_on_exec_set(Eo *obj, Eina_Bool close_on_exec);


close_on_invalidate (get, set) [Overridden from Efl.Io.Closer]

If true will automatically close() on object invalidate.
Eina_Bool efl_io_closer_close_on_invalidate_get(const Eo *obj);
void efl_io_closer_close_on_invalidate_set(Eo *obj, Eina_Bool close_on_invalidate);


closed (get) [Overridden from Efl.Io.Closer]

Eina_Bool efl_io_closer_closed_get(const Eo *obj);


connected (get, set) protected set [Overridden from Efl.Net.Dialer]

Returns whenever the socket is connected or not.
Eina_Bool efl_net_dialer_connected_get(const Eo *obj);
void efl_net_dialer_connected_set(Eo *obj, Eina_Bool connected);


constructor [Overridden from Efl.Object]

Implement this method to provide optional initialization code for your object.
Efl_Object *efl_constructor(Eo *obj);


cookie_jar (get, set)

This property sets the filename to read and write cookies.
const char *efl_net_dialer_http_cookie_jar_get(const Eo *obj);
void efl_net_dialer_http_cookie_jar_set(Eo *obj, const char *path);


date_parse static

Parses the given string as time in seconds since 1/1/1970.
int64_t efl_net_dialer_http_date_parse(const char *str);


date_serialize static

Serializes the given GMT time in seconds since 1/1/1970.
char *efl_net_dialer_http_date_serialize(int64_t epochtime);


destructor [Overridden from Efl.Object]

Implement this method to provide deinitialization code for your object if you need it.
void efl_destructor(Eo *obj);


dial [Overridden from Efl.Net.Dialer]

Dials to the remote peer.
Eina_Error efl_net_dialer_dial(Eo *obj, const char *address);


eos (get, set) protected set [Overridden from Efl.Io.Reader]

If true will notify end of stream.
Eina_Bool efl_io_reader_eos_get(const Eo *obj);
void efl_io_reader_eos_set(Eo *obj, Eina_Bool is_eos);


http_version (get, set)

The HTTP version to use.
Efl_Net_Http_Version efl_net_dialer_http_version_get(const Eo *obj);
void efl_net_dialer_http_version_set(Eo *obj, Efl_Net_Http_Version http_version);


invalidate [Overridden from Efl.Object]

Implement this method to perform special actions when your object loses its parent, if you need to.
void efl_invalidate(Eo *obj);


method (get, set)

The HTTP method to use.
const char *efl_net_dialer_http_method_get(const Eo *obj);
void efl_net_dialer_http_method_set(Eo *obj, const char *method);


primary_mode (get, set)

Is this request primarily a download or upload?
Efl_Net_Dialer_Http_Primary_Mode efl_net_dialer_http_primary_mode_get(const Eo *obj);
void efl_net_dialer_http_primary_mode_set(Eo *obj, Efl_Net_Dialer_Http_Primary_Mode primary_mode);


progress_download (get)

void efl_net_dialer_http_progress_download_get(const Eo *obj, uint64_t *downloaded, uint64_t *total);


progress_upload (get)

void efl_net_dialer_http_progress_upload_get(const Eo *obj, uint64_t *uploaded, uint64_t *total);


proxy (get, set) [Overridden from Efl.Net.Dialer]

Controls/retrieves if the dialer should use a proxy.
const char *efl_net_dialer_proxy_get(const Eo *obj);
void efl_net_dialer_proxy_set(Eo *obj, const char *proxy_url);


read [Overridden from Efl.Io.Reader]

Reads data into a pre-allocated buffer.
Eina_Error efl_io_reader_read(Eo *obj, Eina_Rw_Slice rw_slice);


request_content_length (get, set)

"Content-Length:" Header used for uploading/sending.
int64_t efl_net_dialer_http_request_content_length_get(const Eo *obj);
void efl_net_dialer_http_request_content_length_set(Eo *obj, int64_t length);


request_header_add

Adds a request header 'key: value'.
void efl_net_dialer_http_request_header_add(Eo *obj, const char *key, const char *value);


request_headers_clear

Clears all request headers.
void efl_net_dialer_http_request_headers_clear(Eo *obj);


request_headers_get

Returns an iterator to the key-value pairs for request headers
Eina_Iterator *efl_net_dialer_http_request_headers_get(Eo *obj);


resize [Overridden from Efl.Io.Sizer]

Resize object
Eina_Error efl_io_sizer_resize(Eo *obj, uint64_t size);


response_content_length (get, set) protected set

"Content-Length:" Header used for downloading/receiving.
int64_t efl_net_dialer_http_response_content_length_get(const Eo *obj);
void efl_net_dialer_http_response_content_length_set(Eo *obj, int64_t length);


response_content_type (get, set) protected set

"Content-Type:" Header used for downloading/receiving
const char *efl_net_dialer_http_response_content_type_get(const Eo *obj);
void efl_net_dialer_http_response_content_type_set(Eo *obj, const char *content_type);


response_headers_all_get

Returns an iterator to the key-value pairs for all response headers.
Eina_Iterator *efl_net_dialer_http_response_headers_all_get(Eo *obj);


response_headers_clear

Saves memory by disposing of the received headers
void efl_net_dialer_http_response_headers_clear(Eo *obj);


response_headers_get

Returns an iterator to the key-value pairs for the last response headers.
Eina_Iterator *efl_net_dialer_http_response_headers_get(Eo *obj);


response_status (get)

Efl_Net_Http_Status efl_net_dialer_http_response_status_get(const Eo *obj);


size (get, set) [Overridden from Efl.Io.Sizer]

Size property
uint64_t efl_io_sizer_size_get(const Eo *obj);
Eina_Bool efl_io_sizer_size_set(Eo *obj, uint64_t size);


ssl_certificate_authority (get, set)

Overrides the CA (Certificate Authority) path or directory.
const char *efl_net_dialer_http_ssl_certificate_authority_get(const Eo *obj);
void efl_net_dialer_http_ssl_certificate_authority_set(Eo *obj, const char *path);


ssl_certificate_revocation_list (get, set)

Defines a CRL (Certificate Revocation List) path to use.
const char *efl_net_dialer_http_ssl_certificate_revocation_list_get(const Eo *obj);
void efl_net_dialer_http_ssl_certificate_revocation_list_set(Eo *obj, const char *file);


ssl_verify (get, set)

If remote peer's SSL certificate should be verified.
void efl_net_dialer_http_ssl_verify_get(const Eo *obj, Eina_Bool *peer, Eina_Bool *hostname);
void efl_net_dialer_http_ssl_verify_set(Eo *obj, Eina_Bool peer, Eina_Bool hostname);


timeout_dial (get, set) [Overridden from Efl.Net.Dialer]

The timeout in seconds to use for dialing/connecting.
double efl_net_dialer_timeout_dial_get(const Eo *obj);
void efl_net_dialer_timeout_dial_set(Eo *obj, double seconds);


user_agent (get, set)

The User-Agent to specify.
const char *efl_net_dialer_http_user_agent_get(const Eo *obj);
void efl_net_dialer_http_user_agent_set(Eo *obj, const char *ser_agent);


write [Overridden from Efl.Io.Writer]

Writes data from a pre-populated buffer.
Eina_Error efl_io_writer_write(Eo *obj, Eina_Slice slice, Eina_Slice *remaining);


Inherited

Efl.Loop_Consumer
future_rejected Creates a new future that is already rejected to a specified error using the Efl.Loop_Consumer.loop.get.
future_resolved Creates a new future that is already resolved to a value.
loop (get)
parent (get, set) The parent of an object.
promise_new Create a new promise with the scheduler coming from the loop provided by this object.
Efl.Object
allow_parent_unref (get, set) Allow an object to be deleted by unref even if it has a parent.
children_iterator_new Get an iterator on all children.
comment (get, set) A human readable comment for the object.
composite_attach Make an object a composite object of another.
composite_detach Detach a composite object from another object.
composite_part_is Check if an object is part of a composite object.
debug_name_override Build a read-only name for this object used for debugging.
event_callback_forwarder_del Remove an event callback forwarder for a specified event and object.
event_callback_forwarder_priority_add Add an event callback forwarder that will make this object emit an event whenever another object (source) emits it. The event is said to be forwarded from source to this object.
event_callback_stop Stop the current callback call.
event_freeze Freeze events of this object.
event_freeze_count (get)
static event_global_freeze Globally freeze events for ALL EFL OBJECTS.
static event_global_freeze_count (get)
static event_global_thaw Globally thaw events for ALL EFL OBJECTS.
event_thaw Thaw events of object.
finalize Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.
finalized (get)
invalidated (get)
invalidating (get)
name (get, set) The name of the object.
name_find Find a child object with the given name and return it.
provider_find Searches upwards in the object tree for a provider which knows the given class/interface.
provider_register Will register a manager of a specific class to be answered by Efl.Object.provider_find.
provider_unregister Will unregister a manager of a specific class that was previously registered and answered by Efl.Object.provider_find.

Events

headers,done

Notifies all headers were parsed and are available.
EFL_NET_DIALER_HTTP_EVENT_HEADERS_DONE(void)


Inherited

Efl.Io.Closer
closed Notifies closed, when property is marked as true
Efl.Io.Reader
can_read,changed Notifies can_read property changed.
eos Notifies end of stream, when property is marked as true.
Efl.Io.Sizer
size,changed Notifies size changed
Efl.Io.Writer
can_write,changed Notifies can_write property changed.
Efl.Net.Dialer
dialer,connected Notifies the socket is connected to the remote peer.
dialer,error Some error happened and the socket stopped working.
dialer,resolved Notifies Efl.Net.Dialer.address_dial was resolved to Efl.Net.Socket.address_remote.
Efl.Object
del Object is being deleted. See Efl.Object.destructor.
destruct Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.
invalidate Object is being invalidated and losing its parent. See Efl.Object.invalidate.
noref Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.
ownership,shared Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.
ownership,unique Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.