|
VideoTools
|
A parser for HTTP responses received from a remote server. More...
#include <ghttpclientparser.h>
Public Member Functions | |
| HttpClientParser (const std::string &protocol=std::string()) | |
| Constructor. The protocol defaults to "HTTP". | |
| void | apply (const char *p, size_t n) |
| Adds some data. | |
| void | clear () |
| Clears the contents, returning the object to a newly-constructed state. More... | |
| bool | gotHeaders () const |
| Returns true if headers are complete. | |
| size_t | headerCount () const |
| Returns the number of headers. | |
| bool | responseOk () const |
| Returns true for a 2xx response. | |
| bool | responseRetry () const |
| Returns true for a 503 response. | |
| bool | responseUnauthorised () const |
| Returns true for a "401 Unauthorized" response. | |
| int | responseValue () const |
| Returns the response value (eg. 200), or minus one. | |
| std::vector< size_t > | headers (const std::string &header_key) const |
| Returns the indexes for the headers with the given key. | |
| std::string | header (const std::string &header_key, const std::string &default_=std::string()) const |
| Returns the value of the given header. More... | |
| std::string | header (size_t index, const std::string &default_=std::string()) const |
| Overload using the header index. | |
| int | headerValue (const std::string &header_key, int default_=-1) const |
| Returns the integer value of a numeric header. | |
| int | headerValue (size_t header_index, int default_=-1) const |
| Overload using the header index. | |
| std::string | headerWord (const std::string &header_key, const std::string &default_=std::string()) const |
| Returns the first part of the header with the given key. | |
| std::string | headerWord (size_t header_index, const std::string &default_=std::string()) const |
| Overload using the header index. | |
| std::string | headerAttribute (const std::string &header_key, const std::string &attribute_key, const std::string &default_=std::string()) const |
| Returns a named attribute of the specified header. | |
| std::string | headerAttribute (size_t header_index, const std::string &attribute_key, const std::string &default_=std::string()) const |
| Overload using the header index. | |
| std::string | headerContentType () const |
| Returns the value of the "Content-Type" header. | |
| size_t | headerContentLength () const |
| Returns the value of the "Content-Length" header. More... | |
| void | clearPart () |
| Clears the current multipart body part. | |
| bool | gotBody () const |
| Returns true if the body is complete. | |
| std::string | body () const |
| Returns the body data. More... | |
| const char * | bodyData () const |
| Returns the body data. More... | |
| size_t | bodySize () const |
| Returns the body size. More... | |
| bool | headerMultipart () const |
| Returns true if the main body is of type "multipart". | |
| bool | gotPart () const |
| Returns true if a multipart part is complete. | |
| std::string | partType () const |
| Returns the content-type of the part. More... | |
| const char * | partData () const |
| Returns the part data. More... | |
| size_t | partSize () const |
| Returns the part size. More... | |
| std::string | responseSummary () const |
| Returns a summary of the response for debugging and error reporting. | |
A parser for HTTP responses received from a remote server.
Also works for RTSP.
The response is structured as a status line, followed by an optional set of headers, then a blank line, and then the optional body.
Data is added incrementally with apply(), and gotHeaders() and gotBody() indicate how complete the response is.
The body can be multi-part, as indicated by headerMultipart(). Multi-part streams can be be unending, so individual parts should normally be cleared once they have been processed (see gotPart(), partData() and clearPart()).
Definition at line 51 of file ghttpclientparser.h.
| std::string GNet::HttpClientParser::body | ( | ) | const |
Returns the body data.
Precondition: gotBody()
Definition at line 298 of file ghttpclientparser.cpp.
| const char * GNet::HttpClientParser::bodyData | ( | ) | const |
Returns the body data.
Precondition: gotBody()
Definition at line 303 of file ghttpclientparser.cpp.
| size_t GNet::HttpClientParser::bodySize | ( | ) | const |
Returns the body size.
Precondition: gotBody()
Definition at line 308 of file ghttpclientparser.cpp.
| void GNet::HttpClientParser::clear | ( | ) |
Clears the contents, returning the object to a newly-constructed state.
This is preferable to destruction and construction because the internal receive buffer can be large.
Definition at line 76 of file ghttpclientparser.cpp.
| std::string GNet::HttpClientParser::header | ( | const std::string & | header_key, |
| const std::string & | default_ = std::string() |
||
| ) | const |
Returns the value of the given header.
If the header is repeated then only the first one is relevant.
Definition at line 198 of file ghttpclientparser.cpp.
| size_t GNet::HttpClientParser::headerContentLength | ( | ) | const |
Returns the value of the "Content-Length" header.
Returns zero on error.
Definition at line 222 of file ghttpclientparser.cpp.
| const char * GNet::HttpClientParser::partData | ( | ) | const |
Returns the part data.
Precondition: gotPart()
Definition at line 351 of file ghttpclientparser.cpp.
| size_t GNet::HttpClientParser::partSize | ( | ) | const |
Returns the part size.
Precondition: gotPart()
Definition at line 357 of file ghttpclientparser.cpp.
| std::string GNet::HttpClientParser::partType | ( | ) | const |
Returns the content-type of the part.
Precondition: gotPart()
Definition at line 363 of file ghttpclientparser.cpp.