|
davix
0.2.8
|
Http low level request interface HTTPRequest is the main davix class for low level HTTP queries HTTPRequest objects are provided by Davix::Context. More...
#include <httprequest.hpp>
Public Member Functions | |
| HttpRequest (Context &context, const Uri &url, DavixError **err) | |
| HttpRequest constructor with a defined URL. More... | |
| HttpRequest (Context &context, const std::string &url, DavixError **err) | |
| HttpRequest constructor with a defined URL from a string. More... | |
| HttpRequest (NEONRequest *req) | |
| HttpRequest internal usage. More... | |
| void | addHeaderField (const std::string &field, const std::string &value) |
| void | setRequestMethod (const std::string &method) |
| set the request method ( "GET", "PUT", ... ) More... | |
| void | setParameters (const RequestParams ¶meters) |
| set the request parameter More... | |
| int | executeRequest (DavixError **err) |
| execute this request completely More... | |
| void | setRequestBody (const std::string &body) |
| void | setRequestBody (const void *buffer, dav_size_t len_buff) |
| void | setRequestBody (int fd, dav_off_t offset, dav_size_t len) |
| void | setRequestBody (HttpBodyProvider provider, dav_size_t len, void *udata) |
| int | beginRequest (DavixError **err) |
| start a multi-part HTTP Request More... | |
| dav_ssize_t | readBlock (char *buffer, dav_size_t max_size, DavixError **err) |
| dav_ssize_t | readBlock (std::vector< char > &buffer, dav_size_t max_size, DavixError **err) |
| dav_ssize_t | readSegment (char *buffer, dav_size_t max_size, DavixError **err) |
| dav_ssize_t | readToFd (int fd, DavixError **err) |
| dav_ssize_t | readToFd (int fd, dav_size_t read_size, DavixError **err) |
| dav_ssize_t | readLine (char *buffer, dav_size_t max_size, DavixError **err) |
| void | discardBody (DavixError **err) |
| int | endRequest (DavixError **err) |
| finish a request stated with beginRequest | |
| const char * | getAnswerContent () |
| get a reference to the internal anwser content buffer | |
| dav_ssize_t | getAnswerSize () const |
| void | clearAnswerContent () |
| int | getRequestCode () |
| bool | getAnswerHeader (const std::string &header_name, std::string &value) const |
| HttpCacheToken * | extractCacheToken () const |
| Extract a cache token from this Request. More... | |
| void | useCacheToken (const HttpCacheToken *token) |
| use the cache token of a previous request, enable request o optimizations ( session re-use, redirection caching, server operation support ) More... | |
| void | setFlag (const RequestFlag::RequestFlag flag, bool value) |
| set a HttpRequest flag | |
| bool | getFlag (const RequestFlag::RequestFlag flag) |
| get a HttpRequest flag value | |
Friends | |
| class | NEONRequest |
| class | NEONSessionFactory |
Http low level request interface HTTPRequest is the main davix class for low level HTTP queries HTTPRequest objects are provided by Davix::Context.
| Davix::HttpRequest::HttpRequest | ( | Context & | context, |
| const Uri & | url, | ||
| DavixError ** | err | ||
| ) |
HttpRequest constructor with a defined URL.
| context | davix context |
| url | URL of the resource |
| err | Davix error report system |
| Davix::HttpRequest::HttpRequest | ( | Context & | context, |
| const std::string & | url, | ||
| DavixError ** | err | ||
| ) |
HttpRequest constructor with a defined URL from a string.
| context | davix context |
| url | URL of the resource |
| err | Davix error report system |
| Davix::HttpRequest::HttpRequest | ( | NEONRequest * | req | ) |
HttpRequest internal usage.
| req |
| void Davix::HttpRequest::addHeaderField | ( | const std::string & | field, |
| const std::string & | value | ||
| ) |
add a optional HTTP header request replace an existing one if already exist if the content of value of the header field is empty : remove an existing one
| field | header field name |
| value | header field value |
| int Davix::HttpRequest::beginRequest | ( | DavixError ** | err | ) |
start a multi-part HTTP Request
the multi-part HTTP Request of davix should be used for request with a large answer
| err | : DavixError error report system |
| void Davix::HttpRequest::clearAnswerContent | ( | ) |
clear the current result
| void Davix::HttpRequest::discardBody | ( | DavixError ** | err | ) |
discard the response body
| err,: | DavixError error report system |
| int Davix::HttpRequest::executeRequest | ( | DavixError ** | err | ) |
execute this request completely
the answer is accessible with Davix::HttpRequest::getAnswerContent
| err | davix error report |
| HttpCacheToken* Davix::HttpRequest::extractCacheToken | ( | ) | const |
Extract a cache token from this Request.
a cache token allows to optimize future request cache tokens are dynamically allocated and need to be free
| bool Davix::HttpRequest::getAnswerHeader | ( | const std::string & | header_name, |
| std::string & | value | ||
| ) | const |
get the value associated to a header key in the request answer
| header_name | : key of the header field |
| value | : reference of the string to set |
| dav_ssize_t Davix::HttpRequest::getAnswerSize | ( | ) | const |
get content length
| int Davix::HttpRequest::getRequestCode | ( | ) |
| dav_ssize_t Davix::HttpRequest::readBlock | ( | char * | buffer, |
| dav_size_t | max_size, | ||
| DavixError ** | err | ||
| ) |
read a block of a maximum size bytes in the answer can return < max_size bytes depending of the data available
| buffer | : buffer to fill |
| max_size | : maximum number of byte to read |
| err | : DavixError error report system |
| dav_ssize_t Davix::HttpRequest::readBlock | ( | std::vector< char > & | buffer, |
| dav_size_t | max_size, | ||
| DavixError ** | err | ||
| ) |
read a block of a maximum size bytes in the answer into buffer can return < max_size bytes depending of the data available
| buffer | : vector to fill |
| max_size | : maximum number of byte to read |
| err | : DavixError error report system |
| dav_ssize_t Davix::HttpRequest::readLine | ( | char * | buffer, |
| dav_size_t | max_size, | ||
| DavixError ** | err | ||
| ) |
read a line of text of a maximum size bytes in the answer
| buffer | : buffer to fill |
| max_size | : maximum number of bytes to read |
| err | : DavixError error report system |
| dav_ssize_t Davix::HttpRequest::readSegment | ( | char * | buffer, |
| dav_size_t | max_size, | ||
| DavixError ** | err | ||
| ) |
read a segment of size bytes, return always max_size excepted if the end of the content is reached
| buffer | : vector to fill |
| max_size | : maximum number of byte to read |
| err | : DavixError error report system |
| dav_ssize_t Davix::HttpRequest::readToFd | ( | int | fd, |
| DavixError ** | err | ||
| ) |
write the full answer content to the given file descriptor
| fd | : buffer to fill |
| err | : DavixError error report system |
| dav_ssize_t Davix::HttpRequest::readToFd | ( | int | fd, |
| dav_size_t | read_size, | ||
| DavixError ** | err | ||
| ) |
write the first 'read_size' first bytes to the given file descriptor
| fd | : buffer to fill |
| read_size | : number of bytes to read |
| err | : DavixError error report system |
| void Davix::HttpRequest::setParameters | ( | const RequestParams & | parameters | ) |
set the request parameter
| parameters | Davix Request parameters |
define the request parameters, can be used to define parameters like authentication scheme, timeout or user agent.
| void Davix::HttpRequest::setRequestBody | ( | const std::string & | body | ) |
set the content of the request from a string an empty string set no request content
| void Davix::HttpRequest::setRequestBody | ( | const void * | buffer, |
| dav_size_t | len_buff | ||
| ) |
set the content of the request from a buffer NULL pointer means a empty content
| void Davix::HttpRequest::setRequestBody | ( | int | fd, |
| dav_off_t | offset, | ||
| dav_size_t | len | ||
| ) |
set the content of the request from a file descriptor start at offset and read a maximum of len bytes
| void Davix::HttpRequest::setRequestBody | ( | HttpBodyProvider | provider, |
| dav_size_t | len, | ||
| void * | udata | ||
| ) |
set a callback to provide the body of the requests
| void Davix::HttpRequest::setRequestMethod | ( | const std::string & | method | ) |
set the request method ( "GET", "PUT", ... )
| method | request method |
| void Davix::HttpRequest::useCacheToken | ( | const HttpCacheToken * | token | ) |
use the cache token of a previous request, enable request o optimizations ( session re-use, redirection caching, server operation support )
| token |
1.8.5