davix
0.4.1
|
Http low level request interface. 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) |
const char * | getAnswerContent () |
std::vector< char > & | getAnswerContentVec () |
dav_ssize_t | getAnswerSize () const |
time_t | getLastModified () const |
void | clearAnswerContent () |
int | getRequestCode () |
bool | getAnswerHeader (const std::string &header_name, std::string &value) const |
size_t | getAnswerHeaders (HeaderVec &vec_headers) const |
DEPRECATED (HttpCacheToken *extractCacheToken() const) | |
DEPRECATED (void useCacheToken(const HttpCacheToken *token)) | |
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
Davix::HttpRequest::DEPRECATED | ( | HttpCacheToken *extractCacheToken() | const | ) |
Davix::HttpRequest::DEPRECATED | ( | void | useCacheTokenconst HttpCacheToken *token | ) |
void Davix::HttpRequest::discardBody | ( | DavixError ** | err | ) |
int Davix::HttpRequest::endRequest | ( | DavixError ** | err | ) |
finish a request stated with beginRequest
int Davix::HttpRequest::executeRequest | ( | DavixError ** | err | ) |
execute this request completely
the answer is accessible with Davix::HttpRequest::getAnswerContent
err | davix error report |
const char* Davix::HttpRequest::getAnswerContent | ( | ) |
return the body of the answer
std::vector<char>& Davix::HttpRequest::getAnswerContentVec | ( | ) |
return the body of the answer in a vector
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 |
size_t Davix::HttpRequest::getAnswerHeaders | ( | HeaderVec & | vec_headers | ) | const |
get all the headers associated with this answer
value | : vector of headers |
dav_ssize_t Davix::HttpRequest::getAnswerSize | ( | ) | const |
get content length
time_t Davix::HttpRequest::getLastModified | ( | ) | const |
get last modified time
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 such as 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 |