Davix::HttpRequest Class Reference

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>

Inheritance diagram for Davix::HttpRequest:

Davix::DeleteRequest Davix::GetRequest Davix::HeadRequest Davix::PropfindRequest Davix::PutRequest

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 &parameters)
 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 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)
int endRequest (DavixError **err)
const char * getAnswerContent ()
 get a reference to the internal anwser content buffer
dav_size_t getAnswerSize () const
 get content length
void clearAnswerContent ()
int getRequestCode ()
bool getAnswerHeader (const std::string &header_name, std::string &value) const
HttpCacheTokenextractCacheToken () const
 Extract a cache token from this Request.
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 )
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

Detailed Description

Http low level request interface HTTPRequest is the main davix class for low level HTTP queries HTTPRequest objects are provided by Davix::Context.


Constructor & Destructor Documentation

Davix::HttpRequest::HttpRequest ( Context context,
const Uri url,
DavixError **  err 
)

HttpRequest constructor with a defined URL.

Parameters:
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.

Parameters:
context davix context
url URL of the resource
err Davix error report system

Davix::HttpRequest::HttpRequest ( NEONRequest *  req  ) 

HttpRequest internal usage.

Parameters:
req 


Member Function Documentation

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

Parameters:
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

Parameters:
err : DavixError error report system
Returns:
return 0 if success, or a negative value if an error occures

void Davix::HttpRequest::clearAnswerContent (  ) 

clear the current result

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

Parameters:
err davix error report
Returns:
0 on success

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

Returns:
cache token or null pointer if not available

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

Parameters:
header_name : key of the header field
value : reference of the string to set
Returns:
true if this header exist or false if it does not

int Davix::HttpRequest::getRequestCode (  ) 

Returns:
current request code error undefined if executeRequest or beginRequest has not be called before

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

Parameters:
buffer : vector to fill
max_size : maximum number of byte to read
err : DavixError error report system
Returns:
number of bytes readed

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

Parameters:
buffer : buffer to fill
max_size : maximum number of byte to read
err : DavixError error report system
Returns:
number of bytes readed

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

Parameters:
buffer : buffer to fill
max_size : maximum number of bytes to read
err : DavixError error report system
Returns:
number of bytes readed, if return == max_size -> the line too big

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

Parameters:
fd : buffer to fill
read_size : number of bytes to read
err : DavixError error report system
Returns:
number of bytes read

dav_ssize_t Davix::HttpRequest::readToFd ( int  fd,
DavixError **  err 
)

write the full answer content to the given file descriptor

Parameters:
fd : buffer to fill
err : DavixError error report system
Returns:
number of bytes read

void Davix::HttpRequest::setParameters ( const RequestParams parameters  ) 

set the request parameter

Parameters:
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 ( 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

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 ( const std::string &  body  ) 

set the content of the request from a string an empty string set no request content

Warning:
this string is not duplicated internally for performance reasons

void Davix::HttpRequest::setRequestMethod ( const std::string &  method  ) 

set the request method ( "GET", "PUT", ... )

Parameters:
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 )

Parameters:
token 


The documentation for this class was generated from the following file:
Generated on 20 Jun 2013 for davix by  doxygen 1.4.7