Davix::HttpRequest Class Reference

Public Member Functions

 HttpRequest (NEONRequest *req)
 HttpRequest (Context &context, const Uri &uri, DavixError **err)
 HttpRequest (Context &context, const std::string &url, DavixError **err)
void addHeaderField (const std::string &field, const std::string &value)
void setRequestMethod (const std::string &request_str)
void setParameters (const RequestParams &p)
int executeRequest (DavixError **err)
 execute this request completely
void setRequestBodyString (const std::string &body)
void setRequestBodyBuffer (const void *buffer, size_t len_buff)
void setRequestBodyFileDescriptor (int fd, off_t offset, size_t len)
void setRequestBodyCallback (HttpBodyProvider provider, size_t len, void *udata)
int beginRequest (DavixError **err)
 start a multi-part HTTP Request
ssize_t readBlock (char *buffer, size_t max_size, DavixError **err)
ssize_t readLine (char *buffer, size_t max_size, DavixError **err)
int endRequest (DavixError **err)
const char * getAnswerContent ()
 get a reference to the internal anwser content buffer
size_t getAnswerSize () const
 get content length
void clearAnswerContent ()
int getRequestCode ()
bool getAnswerHeader (const std::string &header_name, std::string &value) const

Friends

class NEONRequest
class NEONSessionFactory

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

example : DavixError* tmp_err=NULL; beginRequest(&tmp_err) // do{ ret= readBlock(buffer, size_read, &tmp_err); } while(ret > 0); endRequest(&tmp_err);

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
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
ssize_t Davix::HttpRequest::readBlock ( char *  buffer,
size_t  max_size,
DavixError **  err 
)

read a block of a maximum size bytes in the request

Parameters:
buffer : buffer to fill
max_size : maximum number of byte to read
err : DavixError error report system
Returns:
number of bytes readed
ssize_t Davix::HttpRequest::readLine ( char *  buffer,
size_t  max_size,
DavixError **  err 
)

read a line of text of a maximum size bytes in the request

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
void Davix::HttpRequest::setRequestBodyBuffer ( const void *  buffer,
size_t  len_buff 
)

set the content of the request from a buffer NULL pointer means a empty content

void Davix::HttpRequest::setRequestBodyCallback ( HttpBodyProvider  provider,
size_t  len,
void *  udata 
)

set a callback to provide the body of the requests

void Davix::HttpRequest::setRequestBodyFileDescriptor ( int  fd,
off_t  offset,
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::setRequestBodyString ( 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 &  request_str  ) 

set the request command to execute ( GET, POST, etc... ) DEFAULT : GET


The documentation for this class was generated from the following file:

Generated on 8 Mar 2013 for davix by  doxygen 1.6.1