#include <url.h>
Public Types | |
enum | Error { errSuccess = 0, errUnreachable, errMissing, errDenied, errInvalid, errForbidden, errUnauthorized, errRelocated, errFailure, errTimeout, errInterface } |
Return error for url fetch. More... | |
enum | Authentication { authAnonymous = 0, authBasic } |
Type of authentication. More... | |
enum | Encoding { encodingBinary = 0, encodingChunked } |
Encoding used in transfer. More... | |
enum | Method { methodHttpGet, methodHttpPut, methodHttpPost, methodHttpPostMultipart, methodFtpGet, methodFtpPut, methodFileGet, methodFilePut } |
Type of fetch. More... | |
enum | Protocol { protocolHttp1_0, protocolHttp1_1 } |
http protocol version More... | |
Public Member Functions | |
URLStream (Family family=IPV4, timeout_t timer=0) | |
Construct an instance of URL stream. | |
URLStream & | getline (char *buffer, size_t len) |
Line parsing with conversion. | |
Error | get (const char *url, size_t buffer=512) |
Get URL data from a named stream of a known buffer size. | |
Error | get (size_t buffer=512) |
Get URL data from a named stream of a known buffer size. | |
Error | submit (const char *url, const char **vars, size_t buffer=512) |
Submit URL with vars passed as argument array. | |
Error | post (const char *url, const char **vars, size_t buffer=512) |
Post URL vars with post method. | |
Error | post (const char *url, MIMEMultipartForm &form, size_t buffer=512) |
Post URL with MIME multipart form. | |
Error | head (const char *url, size_t buffer=512) |
Used to fetch header information for a resource. | |
void | close () |
Close the URL stream for a new connection. | |
void | setReferer (const char *str) |
Set the referer url. | |
void | setHost (const char *str) |
Set the host for the url. | |
void | setAddress (const char *str) |
Set the address for the url. | |
void | setCookie (const char *str) |
Set the cookie to pass. | |
void | setUser (const char *str) |
Set user id for the url. | |
void | setPassword (const char *str) |
Set password for the url. | |
void | setAuthentication (Authentication a, const char *str=NULL) |
Set authentication type for the url. | |
void | setProxyUser (const char *str) |
Set proxy user id for the url. | |
void | setProxyPassword (const char *str) |
Set proxy password for the url. | |
void | setProxyAuthentication (Authentication a, const char *str=NULL) |
Set proxy authentication type for the url. | |
void | setPragma (const char *str) |
Set the pragmas. | |
void | setProxy (const char *host, tpport_t port) |
Set the proxy server used. | |
void | setAgent (const char *str) |
Set the agent. | |
Method | getMethod (void) |
Get url method (and protocol) employed. | |
void | setTimeout (timeout_t to) |
Set socket timeout characteristics for processing URL requests. | |
void | setFollow (bool enable) |
Specify url following. | |
void | setProtocol (Protocol pro) |
Specify http protocol level being used. | |
void | setLocalInterface (const char *intf) |
Specify local interface to use. | |
Protected Member Functions | |
Error | sendHTTPHeader (const char *url, const char **vars, size_t bufsize) |
Send http header to server. | |
int | underflow (void) |
Called if stream buffer needs refilling. | |
virtual int | aRead (char *buffer, size_t len, timeout_t timer) |
Derived method for async or timed I/O function on url stream. | |
virtual int | aWrite (char *buffer, size_t len, timeout_t timer) |
Derived method for async or timed I/O function on url stream. | |
virtual void | httpHeader (const char *header, const char *value) |
Derived method to receive and parse http "headers". | |
virtual char ** | extraHeader (void) |
A virtual to insert additional header info into the request. | |
Protected Attributes | |
ost::String | m_host |
ost::String | m_address |
Related Functions | |
(Note that these are not member functions.) | |
__EXPORT char * | urlDecode (char *source, char *dest=NULL) |
__EXPORT char * | urlEncode (const char *source, char *dest, size_t size) |
__EXPORT char * | b64Decode (char *src, char *dest=NULL) |
__EXPORT char * | b64Encode (const char *source, char *dest, size_t size) |
__EXPORT size_t | b64Encode (const unsigned char *src, size_t srcsize, char *dst, size_t dstsize) |
__EXPORT size_t | b64Decode (const char *src, unsigned char *dst, size_t dstsize) |
__EXPORT String | b64Encode (const String &src) |
__EXPORT String | b64Decode (const String &src) |
__EXPORT String | b64Encode (const unsigned char *src, size_t srcsize) |
__EXPORT size_t | b64Decode (const String &src, unsigned char *dst, size_t dstsize) |
urlfetch.cpp, and xmlfetch.cpp.
Return error for url fetch.
errSuccess | |
errUnreachable | |
errMissing | |
errDenied | |
errInvalid | |
errForbidden | |
errUnauthorized | |
errRelocated | |
errFailure | |
errTimeout | |
errInterface |
Reimplemented from ost::Socket.
Construct an instance of URL stream.
family | protocol to use. | |
timer | for default timeout on I/O operations. |
virtual int ost::URLStream::aRead | ( | char * | buffer, | |
size_t | len, | |||
timeout_t | timer | |||
) | [protected, virtual] |
Derived method for async or timed I/O function on url stream.
buffer | to read stream data into. | |
len | of bytes to read from stream. | |
timer | to wait for data in milliseconds. |
virtual int ost::URLStream::aWrite | ( | char * | buffer, | |
size_t | len, | |||
timeout_t | timer | |||
) | [protected, virtual] |
Derived method for async or timed I/O function on url stream.
buffer | to write stream data from. | |
len | of bytes to write to stream. | |
timer | to wait for data in milliseconds. |
void ost::URLStream::close | ( | ) |
Close the URL stream for a new connection.
virtual char** ost::URLStream::extraHeader | ( | void | ) | [protected, virtual] |
A virtual to insert additional header info into the request.
Error ost::URLStream::get | ( | size_t | buffer = 512 |
) |
Get URL data from a named stream of a known buffer size.
Requesting URL defined in previous calls of setAddress() and setHost() functions.
buffer | size of buffer. |
Error ost::URLStream::get | ( | const char * | url, | |
size_t | buffer = 512 | |||
) |
Get URL data from a named stream of a known buffer size.
url | name of resource. | |
buffer | size of buffer. |
URLStream& ost::URLStream::getline | ( | char * | buffer, | |
size_t | len | |||
) |
Line parsing with conversion.
buffer | to store. | |
len | maximum buffer size. |
Method ost::URLStream::getMethod | ( | void | ) | [inline] |
Get url method (and protocol) employed.
Error ost::URLStream::head | ( | const char * | url, | |
size_t | buffer = 512 | |||
) |
Used to fetch header information for a resource.
url | name of resource. | |
buffer | size of buffer. |
virtual void ost::URLStream::httpHeader | ( | const char * | header, | |
const char * | value | |||
) | [protected, virtual] |
Derived method to receive and parse http "headers".
header | keyword. | |
value | header keyword value. |
Error ost::URLStream::post | ( | const char * | url, | |
MIMEMultipartForm & | form, | |||
size_t | buffer = 512 | |||
) |
Post URL with MIME multipart form.
url | name of resource being posted. | |
form | multi-part resource. | |
buffer | size to use. |
Error ost::URLStream::post | ( | const char * | url, | |
const char ** | vars, | |||
size_t | buffer = 512 | |||
) |
Post URL vars with post method.
url | name of resource being posted. | |
vars | to set in post. | |
buffer | size of buffer. |
Error ost::URLStream::sendHTTPHeader | ( | const char * | url, | |
const char ** | vars, | |||
size_t | bufsize | |||
) | [protected] |
Send http header to server.
url | base to send header to | |
vars | to post or use in get method | |
bufsize | of stream buffering to use |
void ost::URLStream::setAddress | ( | const char * | str | ) | [inline] |
Set the address for the url.
str | address in the URL. |
void ost::URLStream::setAgent | ( | const char * | str | ) | [inline] |
Set the agent.
str | agent value. |
void ost::URLStream::setAuthentication | ( | Authentication | a, | |
const char * | str = NULL | |||
) |
Set authentication type for the url.
a | authentication. | |
str | string. |
void ost::URLStream::setCookie | ( | const char * | str | ) | [inline] |
Set the cookie to pass.
str | cookie string. |
void ost::URLStream::setFollow | ( | bool | enable | ) | [inline] |
Specify url following.
Set to false to disable following of relocation requests.
enable | true to enable following. |
void ost::URLStream::setHost | ( | const char * | str | ) | [inline] |
Set the host for the url.
str | host address. |
void ost::URLStream::setLocalInterface | ( | const char * | intf | ) | [inline] |
Specify local interface to use.
intf | Local interface name |
void ost::URLStream::setPassword | ( | const char * | str | ) | [inline] |
Set password for the url.
str | password. |
void ost::URLStream::setPragma | ( | const char * | str | ) | [inline] |
Set the pragmas.
str | pragma setting. |
void ost::URLStream::setProtocol | ( | Protocol | pro | ) | [inline] |
Specify http protocol level being used.
pro | protocol level. |
void ost::URLStream::setProxy | ( | const char * | host, | |
tpport_t | port | |||
) |
Set the proxy server used.
host | proxy host. | |
port | proxy port. |
void ost::URLStream::setProxyAuthentication | ( | Authentication | a, | |
const char * | str = NULL | |||
) |
Set proxy authentication type for the url.
a | authentication. | |
str | string. |
void ost::URLStream::setProxyPassword | ( | const char * | str | ) | [inline] |
Set proxy password for the url.
str | password. |
void ost::URLStream::setProxyUser | ( | const char * | str | ) | [inline] |
Set proxy user id for the url.
str | user id. |
void ost::URLStream::setReferer | ( | const char * | str | ) |
Set the referer url.
str | referer string. |
void ost::URLStream::setTimeout | ( | timeout_t | to | ) | [inline] |
Set socket timeout characteristics for processing URL requests.
Set to 0 for no default timeouts.
to | timeout to set. |
Reimplemented from ost::TCPStream.
void ost::URLStream::setUser | ( | const char * | str | ) | [inline] |
Set user id for the url.
str | user id. |
Error ost::URLStream::submit | ( | const char * | url, | |
const char ** | vars, | |||
size_t | buffer = 512 | |||
) |
Submit URL with vars passed as argument array.
This submit assumes "GET" method. Use "post" member to perform post.
url | name of resource. | |
vars | to set. | |
buffer | size of buffer. |
int ost::URLStream::underflow | ( | void | ) | [protected] |
Called if stream buffer needs refilling.
Reimplemented from ost::TCPStream.
__EXPORT size_t b64Decode | ( | const String & | src, | |
unsigned char * | dst, | |||
size_t | dstsize | |||
) | [related] |
Decode a string using base64 coding. Destination size should be at least strlen(src)/4*3. Destination are not string terminated (It's just a octet stream).
src | source string | |
dst | destination octet buffer | |
dstsize | destination buffer size |
Decode a STL string using base64 coding into an STL String. Destination size should be at least strlen(src)/4*3. Destination are not string terminated (It's just a octet stream).
src | source string |
__EXPORT size_t b64Decode | ( | const char * | src, | |
unsigned char * | dst, | |||
size_t | dstsize | |||
) | [related] |
Decode a string using base64 coding. Destination size should be at least strlen(src)/4*3. Destination are not string terminated (It's just a octet stream).
src | source string | |
dst | destination octet buffer | |
dstsize | destination buffer size |
__EXPORT char * b64Decode | ( | char * | src, | |
char * | dest = NULL | |||
) | [related] |
Decode a string using base64 coding. Destination size should be at least strlen(src)+1. Destination will be a string, so is always terminated . This function is deprecated, base64 can use binary source, not only string use overloaded b64Decode.
src | source buffer | |
dest | destination buffer. If NULL src is used |
__EXPORT String b64Encode | ( | const unsigned char * | src, | |
size_t | srcsize | |||
) | [related] |
Encode a octet stream using base64 coding into a STL string
src | source buffer | |
srcsize | source buffer size |
Encode a STL string using base64 coding into a STL string
src | source string |
__EXPORT size_t b64Encode | ( | const unsigned char * | src, | |
size_t | srcsize, | |||
char * | dst, | |||
size_t | dstsize | |||
) | [related] |
Encode a octet stream using base64 coding. Destination size should be at least (srcsize+2)/3*4+1. Destination will be a string, so is always terminated (unless you pass dstsize == 0).
src | source buffer | |
srcsize | source buffer size | |
dst | destination buffer | |
dstsize | destination buffer size |
__EXPORT char * b64Encode | ( | const char * | source, | |
char * | dest, | |||
size_t | size | |||
) | [related] |
Encode a string using base64 coding. Destination size should be at least strlen(src)/4*3+1. Destination is string terminated. This function is deprecated, coded stream can contain terminator character use overloaded b64Encode instead.
source | source string | |
dest | destination octet buffer | |
size | destination buffer size |
__EXPORT char * urlDecode | ( | char * | source, | |
char * | dest = NULL | |||
) | [related] |
Decode an url parameter (ie "\%20" -> " ")
source | string | |
dest | destination buffer. If NULL source is used |
__EXPORT char * urlEncode | ( | const char * | source, | |
char * | dest, | |||
size_t | size | |||
) | [related] |
Encode an url parameter (ie " " -> "+")
source | string | |
dest | destination buffer. Do not overlap with source | |
size | destination buffer size. |
ost::String ost::URLStream::m_address [protected] |
ost::String ost::URLStream::m_host [protected] |