94 lines
2.3 KiB
C
94 lines
2.3 KiB
C
|
#pragma once
|
|||
|
|
|||
|
|
|||
|
enum HttpRequestType
|
|||
|
{
|
|||
|
HttpGet = 0,
|
|||
|
HttpPost,
|
|||
|
};
|
|||
|
//ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
enum DownloadState
|
|||
|
{
|
|||
|
HttpLoading = 0,
|
|||
|
HttpFialed,
|
|||
|
HttpFinished,
|
|||
|
};
|
|||
|
|
|||
|
/******************************************************
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
*
|
|||
|
******************************************************/
|
|||
|
enum HttpInterfaceError
|
|||
|
{
|
|||
|
HttpErrorSuccess = 0, //<2F>ɹ<EFBFBD>
|
|||
|
HttpErrorInit, //<2F><>ʼ<EFBFBD><CABC>ʧ<EFBFBD><CAA7>
|
|||
|
HttpErrorConnect, //<2F><><EFBFBD><EFBFBD>HTTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
HttpErrorSend, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
HttpErrorQuery, //<2F><>ѯHTTP<54><50><EFBFBD><EFBFBD>ͷʧ<CDB7><CAA7>
|
|||
|
HttpError404, //ҳ<>治<EFBFBD><E6B2BB><EFBFBD><EFBFBD>
|
|||
|
HttpErrorIllegalUrl, //<2F><>Ч<EFBFBD><D0A7>URL
|
|||
|
HttpErrorCreateFile, //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
HttpErrorDownload, //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
HttpErrorQueryIP, //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ĵ<EFBFBD>ַʧ<D6B7><CAA7>
|
|||
|
HttpErrorSocket, //<2F><EFBFBD><D7BD>ִ<EFBFBD><D6B4><EFBFBD>
|
|||
|
HttpErrorUserCancel, //<2F>û<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
HttpErrorBuffer, //<2F>ļ<EFBFBD>̫<EFBFBD><EFBFBD><F3A3ACBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
HttpErrorHeader, //HTTP<54><50><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
|
|||
|
HttpErrorParam, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
HttpErrorWriteFile, //д<><D0B4><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
HttpErrorUnknow, //δ֪<CEB4><D6AA><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
};
|
|||
|
//<2F><><EFBFBD>صĻص<C4BB>
|
|||
|
class IHttpCallback
|
|||
|
{
|
|||
|
public:
|
|||
|
virtual void OnDownloadCallback(void* pParam, DownloadState state, double nTotalSize, double nLoadSize) = 0;
|
|||
|
virtual bool IsNeedStop() = 0;
|
|||
|
};
|
|||
|
//<2F><><EFBFBD><EFBFBD>ÿ<EFBFBD>ζ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ݵĻ<DDB5><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С 4KB
|
|||
|
#define READ_BUFFER_SIZE 4096
|
|||
|
|
|||
|
//<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õĻ<C3B5><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С 8M
|
|||
|
#define DOWNLOAD_BUFFER_SIZE (8*1024*1024)
|
|||
|
|
|||
|
//<2F>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
struct HttpParamsData
|
|||
|
{
|
|||
|
void* lpparam;//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
IHttpCallback* callback;//<2F>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
HttpInterfaceError errcode;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
//<2F><><EFBFBD>峣<EFBFBD><E5B3A3>httpͷ<70><CDB7><EFBFBD><EFBFBD>
|
|||
|
#define HEADER_USER_AGENT "User-Agent"
|
|||
|
#define HEADER_CONNECTION "Connection"
|
|||
|
#define HEADER_ACCEPT "Accept"
|
|||
|
#define HEADER_ACCEPT_ENCODING "Accept-Encoding"
|
|||
|
#define HEADER_ACCEPT_LANGUAGE "Accept-Language"
|
|||
|
#define HEADER_CONTENT_TYPE "Content-Type"
|
|||
|
#define HEADER_HOST "Host"
|
|||
|
#define HEADER_RANGE "Range"
|
|||
|
#define HEADER_LOCATION "Location"
|
|||
|
#define HEADER_CONTENT_LENGTH "Content-Length"
|
|||
|
|
|||
|
|
|||
|
//Ĭ<><C4AC>HTTP<54>汾
|
|||
|
static const char default_http_version[] = "HTTP/1.1";
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵ<EFBFBD>userAgent
|
|||
|
static const char default_user_agent[] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.4044.92 Safari/537.36";
|
|||
|
|
|||
|
//Ĭ<>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
static const char default_accept[] = "*/*";
|
|||
|
|
|||
|
//Ĭ<>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
static const char default_connection[] = "Keep-Alive";
|
|||
|
|
|||
|
//Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
static const char default_language[] = "zh-CN,zh;q=0.9";
|
|||
|
|
|||
|
//HTTPЭ<50>黻<EFBFBD>з<EFBFBD>
|
|||
|
static const char http_newline[] = "\r\n";
|