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. | |
HttpRequest (Context &context, const std::string &url, DavixError **err) | |
HttpRequest constructor with a defined URL from a string. | |
HttpRequest (NEONRequest *req) | |
HttpRequest internal usage. | |
void | addHeaderField (const std::string &field, const std::string &value) |
void | setRequestMethod (const std::string &method) |
set the request method ( "GET", "PUT", ... ) | |
void | setParameters (const RequestParams ¶meters) |
set the request parameter | |
int | executeRequest (DavixError **err) |
execute this request completely | |
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 | |
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 |
example_code_snippets.cpp HttpRequest uri
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 |
example_code_snippets.cpp HttpRequest
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 |
example_code_snippets.cpp HttpRequest::addHeaderField
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 |
example_code_snippets.cpp HttpRequest::beginRequest
void Davix::HttpRequest::clearAnswerContent | ( | ) |
clear the current result
example_code_snippets.cpp HttpRequest::clearAnswerContent
Davix::HttpRequest::DEPRECATED | ( | void | useCacheTokenconst HttpCacheToken *token | ) |
Davix::HttpRequest::DEPRECATED | ( | HttpCacheToken *extractCacheToken() | const | ) |
void Davix::HttpRequest::discardBody | ( | DavixError ** | err | ) |
discard the response body
err,: | DavixError error report system |
example_code_snippets.cpp HttpRequest::discardBody
int Davix::HttpRequest::endRequest | ( | DavixError ** | err | ) |
finish a request stated with beginRequest
example_code_snippets.cpp HttpRequest::endRequest
int Davix::HttpRequest::executeRequest | ( | DavixError ** | err | ) |
execute this request completely
the answer is accessible with Davix::HttpRequest::getAnswerContent
err | davix error report |
example_code_snippets.cpp HttpRequest::executeRequest
const char* Davix::HttpRequest::getAnswerContent | ( | ) |
return the body of the answer
example_code_snippets.cpp HttpRequest::getAnswerContent
std::vector<char>& Davix::HttpRequest::getAnswerContentVec | ( | ) |
return the body of the answer in a vector
example_code_snippets.cpp HttpRequest::getAnswerContentVec
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 |
example_code_snippets.cpp HttpRequest::getAnswerHeader
size_t Davix::HttpRequest::getAnswerHeaders | ( | HeaderVec & | vec_headers | ) | const |
get all the headers associated with this answer
value | : vector of headers |
example_code_snippets.cpp HttpRequest::getAnswerHeaders
dav_ssize_t Davix::HttpRequest::getAnswerSize | ( | ) | const |
get content length
example_code_snippets.cpp HttpRequest::getAnswerSize
time_t Davix::HttpRequest::getLastModified | ( | ) | const |
get last modified time
example_code_snippets.cpp HttpRequest::getLastModified
int Davix::HttpRequest::getRequestCode | ( | ) |
example_code_snippets.cpp HttpRequest::getRequestCode
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 |
example_code_snippets.cpp HttpRequest::readBlock
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 |
example_code_snippets.cpp HttpRequest::readBlock
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 |
example_code_snippets.cpp HttpRequest::readLine
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 |
example_code_snippets.cpp HttpRequest::readSegment
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 |
example_code_snippets.cpp HttpRequest::readToFd
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 |
example_code_snippets.cpp HttpRequest::readToFd
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.
example_code_snippets.cpp HttpRequest::setParameters
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::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
example_code_snippets.cpp HttpRequest::setRequestBody
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
example_code_snippets.cpp HttpRequest::setRequestBody
void Davix::HttpRequest::setRequestBody | ( | const std::string & | body | ) |
set the content of the request from a string an empty string set no request content
example_code_snippets.cpp HttpRequest::setRequestBody
void Davix::HttpRequest::setRequestMethod | ( | const std::string & | method | ) |
set the request method ( "GET", "PUT", ... )
method | request method |
example_code_snippets.cpp HttpRequest::setRequestMethod