ckhttp.h

来自「DES加密解密算法,西望大家共享.参考学习」· C头文件 代码 · 共 279 行

H
279
字号
// CkHttp.h: interface for the CkHttp class.
//
//////////////////////////////////////////////////////////////////////

#ifndef _CKHTTP_H
#define _CKHTTP_H

#pragma once

#include "CkString.h"
class CkByteData;

/*
    IMPORTANT: Objects returned by methods as non-const pointers must be deleted
    by the calling application. 

  */

#include "CkObject.h"

class CkHttpRequest;
class CkHttpResponse;
class CkHttpProgress;
class CkCert;

// CLASS: CkHttp
class CkHttp  : public CkObject
{
    private:
	CkHttpProgress *m_callback;

	void *m_impl;
	bool m_utf8;	// If true, all input "const char *" parameters are utf-8, otherwise they are ANSI strings.

	// Don't allow assignment or copying these objects.
	CkHttp(const CkHttp &) { } 
	CkHttp &operator=(const CkHttp &) { return *this; }
	CkHttp(void *impl) : m_impl(impl),m_callback(0) { }

    public:
	void *getImpl(void) const { return m_impl; } 

	CkHttp();
	virtual ~CkHttp();

	CkHttpProgress *get_EventCallbackObject(void) const;
	void put_EventCallbackObject(CkHttpProgress *progress);

	// BEGIN PUBLIC INTERFACE
	bool get_Utf8(void) const;
	void put_Utf8(bool b);

	bool UnlockComponent(const char *unlockCode);
	bool IsUnlocked(void) const;


	void get_Version(CkString &str);


	long get_MaxConnections(void);
	void put_MaxConnections(long n);
	
	// Accumulate cookies here.
	void put_CookieDir(const char *dir);
	void get_CookieDir(CkString &str);
	
	void put_SaveCookies(bool b);
	bool get_SaveCookies(void);

	void put_SendCookies(bool b);
	bool get_SendCookies(void);

	bool Download(const char *url, const char *filename);

	// Fetch any kind of object (images, html, etc.)
	bool QuickGet(const char *url, CkByteData &data);

	// Fetch to HTML, XML, etc.
	bool QuickGetStr(const char *url, CkString &str);

	void SetSslClientCert(CkCert &cert);

	// General request/response.
	CkHttpResponse *SynchronousRequest(const char *domain, long port, bool ssl, const CkHttpRequest &req);

	void get_LastHeader(CkString &str);
	const char *lastHeader(void);

	void put_Login(const char *v);
	void get_Login(CkString &str);

	void put_Password(const char *v);
	void get_Password(CkString &str);

	void put_NtlmAuth(bool b);
	bool get_NtlmAuth(void);


	long get_ProxyPort(void);
	void put_ProxyPort(long n);
	
	void put_ProxyDomain(const char *v);
	void get_ProxyDomain(CkString &str);

	void get_ProxyLogin(CkString &str);
	void put_ProxyLogin(const char *newVal);

	void get_ProxyPassword(CkString &str);
	void put_ProxyPassword(const char *newVal);

	const char *proxyLogin(void);
	const char *proxyPassword(void);
	const char *proxyDomain(void);


	// These times are in milliseconds.
	long get_HeartbeatMs(void);
	void put_HeartbeatMs(long newVal);


	// Manage request headers added for "QuickGet" methods.
	void SetRequestHeader(const char *name, const char *value);
	bool GetRequestHeader(const char *name, CkString &str);
	bool HasRequestHeader(const char *name);
	void RemoveRequestHeader(const char *name);

	// For "QuickGet" URL fetches.
	// UserAgent request header
	void put_UserAgent(const char *v);
	void get_UserAgent(CkString &str);

	// For "QuickGet" URL fetches.
	// Referer request header
	void put_Referer(const char *v);
	void get_Referer(CkString &str);

	// Accept request header
	void put_Accept(const char *v);
	void get_Accept(CkString &str);

	// AcceptCharset request header
	void put_AcceptCharset(const char *v);
	void get_AcceptCharset(CkString &str);

	// AcceptLanguage request header
	void put_AcceptLanguage(const char *v);
	void get_AcceptLanguage(CkString &str);

	// Connection request header field.
	void put_Connection(const char *v);
	void get_Connection(CkString &str);

	// For "QuickGet" URL fetches.
	long get_MaxUrlLen(void);
	void put_MaxUrlLen(long n);

	// For "QuickGet" URL fetches.
	long get_MaxResponseSize(void);
	void put_MaxResponseSize(long n);

	// For "QuickGet" URL fetches.
	void put_MimicIE(bool b);
	bool get_MimicIE(void);
	void put_MimicFireFox(bool b);
	bool get_MimicFireFox(void);

	// For all requests...
	void put_AutoAddHostHeader(bool b);
	bool get_AutoAddHostHeader(void);

	long get_ConnectTimeout(void);
	void put_ConnectTimeout(long numSeconds);

	long get_ReadTimeout(void);
	void put_ReadTimeout(long numSeconds);

	void GetDomain(const char *url, CkString &str);

	bool get_WasRedirected(void);
	void get_FinalRedirectUrl(CkString &str);
	
	void put_FollowRedirects(bool b);
	bool get_FollowRedirects(void);

	// Cache methods/properties.
	// 0 = all files in the cache root(s).
	// 1 = 256 subdirectories off cache roots
	// 2 = 256x256 subdirs.
	void put_NumCacheLevels(long v);
	long get_NumCacheLevels(void);

	// Setting/getting cache roots.
	long get_NumCacheRoots(void);
	bool GetCacheRoot(int index, CkString &str);
	void AddCacheRoot(const char *dir);

	// Cache Control properties.
	bool get_UpdateCache(void);
	void put_UpdateCache(bool b);

	bool get_FetchFromCache(void);
	void put_FetchFromCache(bool b);

	bool get_IgnoreNoCache(void);
	void put_IgnoreNoCache(bool b);

	bool get_IgnoreMustRevalidate(void);
	void put_IgnoreMustRevalidate(bool b);

	// 1-week is default.
 	long get_DefaultFreshPeriod(void);
	void put_DefaultFreshPeriod(long numMinutes);

	// 0 = constant (use default freshness period)
	// 1 = LM Factor
	long get_FreshnessAlgorithm(void);
	void put_FreshnessAlgorithm(long v);

	// 1 - 100% (percentage of time between fetch-time and
	// last-mod date used for the freshness period)
	long get_LMFactor(void);
	void put_LMFactor(long v);

	long get_MaxFreshPeriod(void);
	void put_MaxFreshPeriod(long numMinutes);

	long get_MinFreshPeriod(void);
	void put_MinFreshPeriod(long numMinutes);
	
	void GetUrlPath(const char *url, CkString &str);

	long get_LastStatus(void);
	void get_LastContentType(CkString &strContentType);
	void get_LastResponseHeader(CkString &strHeader);
	// Get the last-mod date in format yyyy-mm-dd
	void get_LastModDate(CkString &str);


	// Error log retrieval and saving (these methods are common to all Chilkat VC++ classes.)
	bool SaveLastError(const char *filename);
        void LastErrorXml(CkString &str);
        void LastErrorHtml(CkString &str);
        void LastErrorText(CkString &str);

	CkString m_resultString;
        const char *lastErrorText(void);
        const char *lastErrorXml(void);
        const char *lastErrorHtml(void);
	const char *version(void);
	const char *cookieDir(void);
	const char *quickGetStr(const char *url);
	const char *password(void);
	const char *login(void);
	const char *getRequestHeader(const char *name);
	const char *userAgent(void);
	const char *referer(void);
	const char *ck_accept(void);
	const char *acceptCharset(void);
	const char *acceptLanguage(void);
	const char *connection(void);
	const char *getDomain(const char *url);
	const char *finalRedirectUrl(void);
	const char *getCacheRoot(int index);
	const char *getUrlPath(const char *url);
	const char *lastContentType(void);
	const char *lastResponseHeader(void);
	const char *lastModDate(void);

	// END PUBLIC INTERFACE



};


#endif


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?