319 lines
13 KiB
C
319 lines
13 KiB
C
|
|
// CkHttpResponseW.h: interface for the CkHttpResponseW class.
|
||
|
|
//
|
||
|
|
//////////////////////////////////////////////////////////////////////
|
||
|
|
|
||
|
|
// This header is generated for Chilkat 11.3.0
|
||
|
|
|
||
|
|
#ifndef _CkHttpResponseW_H
|
||
|
|
#define _CkHttpResponseW_H
|
||
|
|
|
||
|
|
#include "chilkatDefs.h"
|
||
|
|
#include "CkString.h"
|
||
|
|
#include "CkWideCharBase.h"
|
||
|
|
|
||
|
|
class CkBinDataW;
|
||
|
|
class CkJsonArrayW;
|
||
|
|
class CkJsonObjectW;
|
||
|
|
class CkStringBuilderW;
|
||
|
|
class CkXmlW;
|
||
|
|
class CkTaskW;
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
#if !defined(__sun__) && !defined(__sun)
|
||
|
|
#pragma pack (push, 8)
|
||
|
|
#endif
|
||
|
|
|
||
|
|
|
||
|
|
// CLASS: CkHttpResponseW
|
||
|
|
class CK_VISIBLE_PUBLIC CkHttpResponseW : public CkWideCharBase
|
||
|
|
{
|
||
|
|
|
||
|
|
|
||
|
|
private:
|
||
|
|
|
||
|
|
// Don't allow assignment or copying these objects.
|
||
|
|
CkHttpResponseW(const CkHttpResponseW &);
|
||
|
|
CkHttpResponseW &operator=(const CkHttpResponseW &);
|
||
|
|
|
||
|
|
public:
|
||
|
|
CkHttpResponseW(void);
|
||
|
|
virtual ~CkHttpResponseW(void);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
static CkHttpResponseW *createNew(void);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
void CK_VISIBLE_PRIVATE inject(void *impl);
|
||
|
|
|
||
|
|
// May be called when finished with the object to free/dispose of any
|
||
|
|
// internal resources held by the object.
|
||
|
|
void dispose(void);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// BEGIN PUBLIC INTERFACE
|
||
|
|
|
||
|
|
// ----------------------
|
||
|
|
// Properties
|
||
|
|
// ----------------------
|
||
|
|
// The same as the Body property, but returned as a quoted-printable encoded
|
||
|
|
// string.
|
||
|
|
void get_BodyQP(CkString &str);
|
||
|
|
// The same as the Body property, but returned as a quoted-printable encoded
|
||
|
|
// string.
|
||
|
|
const wchar_t *bodyQP(void);
|
||
|
|
|
||
|
|
// The response body returned as a string.
|
||
|
|
void get_BodyStr(CkString &str);
|
||
|
|
// The response body returned as a string.
|
||
|
|
const wchar_t *bodyStr(void);
|
||
|
|
|
||
|
|
// The response charset, such as iso-8859-1 , if applicable. Obviously, responses
|
||
|
|
// for GIF and JPG files will not have a charset.
|
||
|
|
void get_Charset(CkString &str);
|
||
|
|
// The response charset, such as iso-8859-1 , if applicable. Obviously, responses
|
||
|
|
// for GIF and JPG files will not have a charset.
|
||
|
|
const wchar_t *charset(void);
|
||
|
|
|
||
|
|
// The content length of the response, in bytes.
|
||
|
|
unsigned long get_ContentLength(void);
|
||
|
|
|
||
|
|
// The content length of the response, in number of bytes, returned as a 64-bit
|
||
|
|
// integer.
|
||
|
|
__int64 get_ContentLength64(void);
|
||
|
|
|
||
|
|
// Returns the content of the Date response header field in RFC822 date/time string
|
||
|
|
// format.
|
||
|
|
void get_DateStr(CkString &str);
|
||
|
|
// Returns the content of the Date response header field in RFC822 date/time string
|
||
|
|
// format.
|
||
|
|
const wchar_t *dateStr(void);
|
||
|
|
|
||
|
|
// The domain of the HTTP server that created this response.
|
||
|
|
void get_Domain(CkString &str);
|
||
|
|
// The domain of the HTTP server that created this response.
|
||
|
|
const wchar_t *domain(void);
|
||
|
|
|
||
|
|
// Returns the redirect URL for 301/302 responses.
|
||
|
|
void get_FinalRedirectUrl(CkString &str);
|
||
|
|
// Returns the redirect URL for 301/302 responses.
|
||
|
|
const wchar_t *finalRedirectUrl(void);
|
||
|
|
|
||
|
|
// Returns the full MIME (header + body) of the HTTP response.
|
||
|
|
void get_FullMime(CkString &str);
|
||
|
|
// Returns the full MIME (header + body) of the HTTP response.
|
||
|
|
const wchar_t *fullMime(void);
|
||
|
|
|
||
|
|
// The full text of the response header.
|
||
|
|
void get_Header(CkString &str);
|
||
|
|
// The full text of the response header.
|
||
|
|
const wchar_t *header(void);
|
||
|
|
|
||
|
|
// The number of cookies included in the response.
|
||
|
|
int get_NumCookies(void);
|
||
|
|
|
||
|
|
// The number of response header fields.
|
||
|
|
int get_NumHeaderFields(void);
|
||
|
|
|
||
|
|
// The status code (as an integer) from the first line of an HTTP response. If the
|
||
|
|
// StatusLine = HTTP/1.0 200 OK , the response status code returned is 200.
|
||
|
|
int get_StatusCode(void);
|
||
|
|
|
||
|
|
// The first line of an HTTP response, such as HTTP/1.0 200 OK .
|
||
|
|
void get_StatusLine(CkString &str);
|
||
|
|
// The first line of an HTTP response, such as HTTP/1.0 200 OK .
|
||
|
|
const wchar_t *statusLine(void);
|
||
|
|
|
||
|
|
// The text that follows the status code in the 1st line of the HTTP response. For
|
||
|
|
// example, i the first line of an HTTP response is HTTP/1.0 200 OK , then this
|
||
|
|
// property contains OK .
|
||
|
|
void get_StatusText(CkString &str);
|
||
|
|
// The text that follows the status code in the 1st line of the HTTP response. For
|
||
|
|
// example, i the first line of an HTTP response is HTTP/1.0 200 OK , then this
|
||
|
|
// property contains OK .
|
||
|
|
const wchar_t *statusText(void);
|
||
|
|
|
||
|
|
// This is a catch-all property to be used for uncommon needs. Can be set to a list
|
||
|
|
// of the following comma separated keywords:
|
||
|
|
// * TakeResponseBody - Introduced in v9.5.0.89. The GetBody* methods will
|
||
|
|
// transfer the body to the target object instead of copying the contents. This can
|
||
|
|
// be useful if the response body is extremely large because it will reduce the
|
||
|
|
// overall memory requirement.
|
||
|
|
void get_UncommonOptions(CkString &str);
|
||
|
|
// This is a catch-all property to be used for uncommon needs. Can be set to a list
|
||
|
|
// of the following comma separated keywords:
|
||
|
|
// * TakeResponseBody - Introduced in v9.5.0.89. The GetBody* methods will
|
||
|
|
// transfer the body to the target object instead of copying the contents. This can
|
||
|
|
// be useful if the response body is extremely large because it will reduce the
|
||
|
|
// overall memory requirement.
|
||
|
|
const wchar_t *uncommonOptions(void);
|
||
|
|
// This is a catch-all property to be used for uncommon needs. Can be set to a list
|
||
|
|
// of the following comma separated keywords:
|
||
|
|
// * TakeResponseBody - Introduced in v9.5.0.89. The GetBody* methods will
|
||
|
|
// transfer the body to the target object instead of copying the contents. This can
|
||
|
|
// be useful if the response body is extremely large because it will reduce the
|
||
|
|
// overall memory requirement.
|
||
|
|
void put_UncommonOptions(const wchar_t *newVal);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// ----------------------
|
||
|
|
// Methods
|
||
|
|
// ----------------------
|
||
|
|
// Copies the response body to a BinData object.
|
||
|
|
bool GetBodyBd(CkBinDataW &binData);
|
||
|
|
|
||
|
|
// Loads the JSON array response body into a JsonArray This method should only be
|
||
|
|
// called when it is known that the response body contains a JSON array (beginning
|
||
|
|
// with a square bracket '[' and ending with a square bracket ']')
|
||
|
|
bool GetBodyJarr(CkJsonArrayW &jarr);
|
||
|
|
|
||
|
|
// Loads the JSON response body into a JsonObject. This method should only be
|
||
|
|
// called when it is known that the response body contains JSON (beginning with a
|
||
|
|
// curly brace '{' and ending with a curly brace '}')
|
||
|
|
bool GetBodyJson(CkJsonObjectW &json);
|
||
|
|
|
||
|
|
// Copies the response body to a Chilkat StringBuilder object.
|
||
|
|
bool GetBodySb(CkStringBuilderW &sb);
|
||
|
|
|
||
|
|
// Loads the XML response body into an XML object. This method should only be
|
||
|
|
// called when it is known that the response body contains XML.
|
||
|
|
bool GetBodyXml(CkXmlW &xml);
|
||
|
|
|
||
|
|
// Returns the domain of the Nth cookie in the response. Indexing begins at 0. The
|
||
|
|
// number of response cookies is specified in the NumCookies property.
|
||
|
|
bool GetCookieDomain(int index, CkString &outStr);
|
||
|
|
// Returns the domain of the Nth cookie in the response. Indexing begins at 0. The
|
||
|
|
// number of response cookies is specified in the NumCookies property.
|
||
|
|
const wchar_t *getCookieDomain(int index);
|
||
|
|
// Returns the domain of the Nth cookie in the response. Indexing begins at 0. The
|
||
|
|
// number of response cookies is specified in the NumCookies property.
|
||
|
|
const wchar_t *cookieDomain(int index);
|
||
|
|
|
||
|
|
// Returns the expiration date/time of the Nth cookie in the response. Indexing
|
||
|
|
// begins at 0. The number of response cookies is specified in the NumCookies
|
||
|
|
// property.
|
||
|
|
bool GetCookieExpiresStr(int index, CkString &outStr);
|
||
|
|
// Returns the expiration date/time of the Nth cookie in the response. Indexing
|
||
|
|
// begins at 0. The number of response cookies is specified in the NumCookies
|
||
|
|
// property.
|
||
|
|
const wchar_t *getCookieExpiresStr(int index);
|
||
|
|
// Returns the expiration date/time of the Nth cookie in the response. Indexing
|
||
|
|
// begins at 0. The number of response cookies is specified in the NumCookies
|
||
|
|
// property.
|
||
|
|
const wchar_t *cookieExpiresStr(int index);
|
||
|
|
|
||
|
|
// Returns the name of the Nth cookie returned in the response. Indexing begins at
|
||
|
|
// 0. The number of response cookies is specified in the NumCookies property.
|
||
|
|
bool GetCookieName(int index, CkString &outStr);
|
||
|
|
// Returns the name of the Nth cookie returned in the response. Indexing begins at
|
||
|
|
// 0. The number of response cookies is specified in the NumCookies property.
|
||
|
|
const wchar_t *getCookieName(int index);
|
||
|
|
// Returns the name of the Nth cookie returned in the response. Indexing begins at
|
||
|
|
// 0. The number of response cookies is specified in the NumCookies property.
|
||
|
|
const wchar_t *cookieName(int index);
|
||
|
|
|
||
|
|
// Returns the path of the Nth cookie returned in the response. Indexing begins at
|
||
|
|
// 0. The number of response cookies is specified in the NumCookies property.
|
||
|
|
bool GetCookiePath(int index, CkString &outStr);
|
||
|
|
// Returns the path of the Nth cookie returned in the response. Indexing begins at
|
||
|
|
// 0. The number of response cookies is specified in the NumCookies property.
|
||
|
|
const wchar_t *getCookiePath(int index);
|
||
|
|
// Returns the path of the Nth cookie returned in the response. Indexing begins at
|
||
|
|
// 0. The number of response cookies is specified in the NumCookies property.
|
||
|
|
const wchar_t *cookiePath(int index);
|
||
|
|
|
||
|
|
// Returns the value of the Nth cookie returned in the response. Indexing begins at
|
||
|
|
// 0. The number of response cookies is specified in the NumCookies property.
|
||
|
|
bool GetCookieValue(int index, CkString &outStr);
|
||
|
|
// Returns the value of the Nth cookie returned in the response. Indexing begins at
|
||
|
|
// 0. The number of response cookies is specified in the NumCookies property.
|
||
|
|
const wchar_t *getCookieValue(int index);
|
||
|
|
// Returns the value of the Nth cookie returned in the response. Indexing begins at
|
||
|
|
// 0. The number of response cookies is specified in the NumCookies property.
|
||
|
|
const wchar_t *cookieValue(int index);
|
||
|
|
|
||
|
|
// Returns the value of a response header field accessed by field name.
|
||
|
|
bool GetHeaderField(const wchar_t *fieldName, CkString &outStr);
|
||
|
|
// Returns the value of a response header field accessed by field name.
|
||
|
|
const wchar_t *getHeaderField(const wchar_t *fieldName);
|
||
|
|
// Returns the value of a response header field accessed by field name.
|
||
|
|
const wchar_t *headerField(const wchar_t *fieldName);
|
||
|
|
|
||
|
|
// Returns a response header field attribute. As an example, the response charset
|
||
|
|
// is simply the GetHeaderFieldAttr( content-type , charset )
|
||
|
|
bool GetHeaderFieldAttr(const wchar_t *fieldName, const wchar_t *attrName, CkString &outStr);
|
||
|
|
// Returns a response header field attribute. As an example, the response charset
|
||
|
|
// is simply the GetHeaderFieldAttr( content-type , charset )
|
||
|
|
const wchar_t *getHeaderFieldAttr(const wchar_t *fieldName, const wchar_t *attrName);
|
||
|
|
// Returns a response header field attribute. As an example, the response charset
|
||
|
|
// is simply the GetHeaderFieldAttr( content-type , charset )
|
||
|
|
const wchar_t *headerFieldAttr(const wchar_t *fieldName, const wchar_t *attrName);
|
||
|
|
|
||
|
|
// Gets the name of the Nth response header field. Indexing begins at 0. The number
|
||
|
|
// of response headers is specified by the NumHeaderFields property.
|
||
|
|
bool GetHeaderName(int index, CkString &outStr);
|
||
|
|
// Gets the name of the Nth response header field. Indexing begins at 0. The number
|
||
|
|
// of response headers is specified by the NumHeaderFields property.
|
||
|
|
const wchar_t *getHeaderName(int index);
|
||
|
|
// Gets the name of the Nth response header field. Indexing begins at 0. The number
|
||
|
|
// of response headers is specified by the NumHeaderFields property.
|
||
|
|
const wchar_t *headerName(int index);
|
||
|
|
|
||
|
|
// Gets the value of the Nth response header field. Indexing begins at 0. The
|
||
|
|
// number of response headers is specified by the NumHeaderFields property.
|
||
|
|
bool GetHeaderValue(int index, CkString &outStr);
|
||
|
|
// Gets the value of the Nth response header field. Indexing begins at 0. The
|
||
|
|
// number of response headers is specified by the NumHeaderFields property.
|
||
|
|
const wchar_t *getHeaderValue(int index);
|
||
|
|
// Gets the value of the Nth response header field. Indexing begins at 0. The
|
||
|
|
// number of response headers is specified by the NumHeaderFields property.
|
||
|
|
const wchar_t *headerValue(int index);
|
||
|
|
|
||
|
|
// Loads the HTTP response from a completed asynchronous task. A failed return
|
||
|
|
// value indicates that no HTTP response was received in the HTTP asynchronous
|
||
|
|
// method call (i.e. the asynchronous HTTP request failed in such a way that no
|
||
|
|
// response was received).
|
||
|
|
bool LoadTaskResult(CkTaskW &task);
|
||
|
|
|
||
|
|
// Saves the body of the HTTP response to a file.
|
||
|
|
bool SaveBodyBinary(const wchar_t *path);
|
||
|
|
|
||
|
|
// Saves the HTTP response body to a file. This method provides control over CRLF
|
||
|
|
// vs bare-LF line-endings. If bCrlf is true, then line endings are automatically
|
||
|
|
// converted to CRLF if necessary. If bCrlf is false, then line-endings are
|
||
|
|
// automatically converted to bare-LF's (Unix style) if necessary.
|
||
|
|
//
|
||
|
|
// To save the HTTP response body exactly as-is (with no line-ending manipulation),
|
||
|
|
// then call SaveBodyBinary.
|
||
|
|
//
|
||
|
|
bool SaveBodyText(bool bCrlf, const wchar_t *path);
|
||
|
|
|
||
|
|
// Convenience method for parsing a param's value out of a URL-encoded param
|
||
|
|
// string. For example, if a caller passes the following string in
|
||
|
|
// encodedParamString:oauth_token=ABC&oauth_token_secret=123&oauth_callback_confirmed=true and
|
||
|
|
// oauth_token_secret in paramName, then the return value would be 123 .
|
||
|
|
bool UrlEncParamValue(const wchar_t *encodedParamString, const wchar_t *paramName, CkString &outStr);
|
||
|
|
// Convenience method for parsing a param's value out of a URL-encoded param
|
||
|
|
// string. For example, if a caller passes the following string in
|
||
|
|
// encodedParamString:oauth_token=ABC&oauth_token_secret=123&oauth_callback_confirmed=true and
|
||
|
|
// oauth_token_secret in paramName, then the return value would be 123 .
|
||
|
|
const wchar_t *urlEncParamValue(const wchar_t *encodedParamString, const wchar_t *paramName);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// END PUBLIC INTERFACE
|
||
|
|
|
||
|
|
|
||
|
|
};
|
||
|
|
#if !defined(__sun__) && !defined(__sun)
|
||
|
|
#pragma pack (pop)
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif
|