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)
⇒ Efl.Loop_Consumer (class) ⇒ Efl.Object (class)
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]
Iftrue
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]
Iftrue
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]
Iftrue
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);
Adds a request header 'key: value'.
void efl_net_dialer_http_request_header_add(Eo *obj, const char *key, const char *value);
Clears all request headers.
void efl_net_dialer_http_request_headers_clear(Eo *obj);
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);
Returns an iterator to the key-value pairs for all response headers.
Eina_Iterator *efl_net_dialer_http_response_headers_all_get(Eo *obj);
Saves memory by disposing of the received headers
void efl_net_dialer_http_response_headers_clear(Eo *obj);
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);
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. |
Notifies all headers were parsed and are available.
EFL_NET_DIALER_HTTP_EVENT_HEADERS_DONE(void)
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. |