// 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