PdbLib/UpLoader/HTTP/http_defines.h
2025-06-05 10:51:52 +08:00

94 lines
2.3 KiB
C++

#pragma once
enum HttpRequestType
{
HttpGet = 0,
HttpPost,
};
//枚举下载状态
enum DownloadState
{
HttpLoading = 0,
HttpFialed,
HttpFinished,
};
/******************************************************
*定义错误信息
*
******************************************************/
enum HttpInterfaceError
{
HttpErrorSuccess = 0, //成功
HttpErrorInit, //初始化失败
HttpErrorConnect, //连接HTTP服务器失败
HttpErrorSend, //发送请求失败
HttpErrorQuery, //查询HTTP请求头失败
HttpError404, //页面不存在
HttpErrorIllegalUrl, //无效的URL
HttpErrorCreateFile, //创建文件失败
HttpErrorDownload, //下载失败
HttpErrorQueryIP, //获取域名对应的地址失败
HttpErrorSocket, //套接字错误
HttpErrorUserCancel, //用户取消下载
HttpErrorBuffer, //文件太大,缓冲区不足
HttpErrorHeader, //HTTP请求头错误
HttpErrorParam, //参数错误,空指针,空字符……
HttpErrorWriteFile, //写入文件失败
HttpErrorUnknow, //未知错误
};
//下载的回调
class IHttpCallback
{
public:
virtual void OnDownloadCallback(void* pParam, DownloadState state, double nTotalSize, double nLoadSize) = 0;
virtual bool IsNeedStop() = 0;
};
//定义每次读取数据的缓冲区大小 4KB
#define READ_BUFFER_SIZE 4096
//内存中设置的缓冲区大小 8M
#define DOWNLOAD_BUFFER_SIZE (8*1024*1024)
//回调参数信息
struct HttpParamsData
{
void* lpparam;//自定义数据
IHttpCallback* callback;//回调函数
HttpInterfaceError errcode;//错误码
};
//定义常用http头名称
#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"
//默认HTTP版本
static const char default_http_version[] = "HTTP/1.1";
//定义默认的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";
//默认接收类型
static const char default_accept[] = "*/*";
//默认保持连接
static const char default_connection[] = "Keep-Alive";
//默认语言
static const char default_language[] = "zh-CN,zh;q=0.9";
//HTTP协议换行符
static const char http_newline[] = "\r\n";