44 typedef std::map<std::string, WSHeader> VARS;
47 { init(request, 1,
true,
false); }
48 WSResponse(
const WSRequest &request,
int maxRedirs,
bool trustedLocation,
bool followAny)
49 { init(request, maxRedirs, trustedLocation, followAny); }
52 bool IsSuccessful()
const {
return p->IsSuccessful(); }
53 bool IsChunkedTransfer()
const {
return p->IsChunkedTransfer(); }
54 size_t GetContentLength()
const {
return p->GetContentLength(); }
55 int ReadContent(
char *buf,
int buflen) {
return p->ReadContent(buf, buflen); }
56 size_t GetConsumed()
const {
return p->GetConsumed(); }
57 int GetStatusCode()
const {
return p->GetStatusCode(); }
58 const std::string& Redirection()
const {
return p->Redirection(); }
60 bool GetHeaderValue(
const std::string& header, std::string& value)
62 return p->GetHeaderValue(header, value);
64 const std::string& GetHeaderValue(
const std::string& header)
const
66 return p->GetHeaderValue(header);
68 const VARS& GetRequestHeaders()
const
70 return p->GetRequestHeaders();
74 static bool ReadHeaderLine(
NetSocket *socket,
const char *eol, std::string& line,
size_t *len);
77 void init(
const WSRequest &request,
int maxRedirs,
bool trustedLocation,
bool followAny);
80 WSResponse(
const WSResponse&);
81 WSResponse& operator=(
const WSResponse&);
89 bool IsSuccessful()
const {
return m_successful; }
90 bool IsChunkedTransfer()
const {
return m_contentChunked; }
91 size_t GetContentLength()
const {
return m_contentLength; }
92 int ReadContent(
char *buf,
size_t buflen);
93 size_t GetConsumed()
const {
return m_consumed; }
94 int GetStatusCode()
const {
return m_statusCode; }
95 const std::string& Redirection()
const {
return m_location; }
97 bool GetHeaderValue(
const std::string& header, std::string& value);
98 const std::string& GetHeaderValue(
const std::string& header)
const;
99 const VARS& GetRequestHeaders()
const {
return m_headers; }
105 std::string m_serverInfo;
107 std::string m_location;
108 WS_CENCODING m_contentEncoding;
111 bool m_contentChunked;
113 size_t m_contentLength;
124 _response(
const _response&);
125 _response& operator=(
const _response&);
127 bool WriteRequestStream(
const char * data,
unsigned len)
override;
128 bool FlushRequestStream()
override;
131 int ReadChunk(
void *buf,
size_t buflen);
132 static int SocketStreamReader(
void *hdl,
void *buf,
int sz);
133 static int ChunkStreamReader(
void *hdl,
void *buf,
int sz);