⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nq_soc_http.h

📁 mtk socket编程
💻 H
字号:

#ifndef __NQ_ZH_SOC_HTTP__
#define __NQ_ZH_SOC_HTTP__

#define NQ_ZH_HTTP_REQ_BUFFER_MAX	1024*2
#define NQ_ZH_HTTP_RECV_BUFFER_MAX	1024*5


#define NQ_ZH_CRLF       "\r\n"
#define NQ_ZH_CRLF_LEN   2

#define NQ_ZH_HTTP_VER       " HTTP/1.1"
#define NQ_ZH_HTTP_VER_LEN       9


#define NQ_ZH_INFO_SIZE		256				/* 信息的长度		*/

typedef enum   //http请求域
{
	//request method
	NQ_ZH_HTTPREQF_GET, //请求指定的页面信息,并返回实体主体
	NQ_ZH_HTTPREQF_HEAD, //只请求页面的首部
	NQ_ZH_HTTPREQF_POST, //请求服务器接受所指定的文档作为对所标识的URI的新的从属实体
	NQ_ZH_HTTPREQF_PUT, //从客户端向服务器传送的数据取代指定的文档的内容
	NQ_ZH_HTTPREQF_DELETE, //请求服务器删除指定的页面
	NQ_ZH_HTTPREQF_OPTION, //允许客户端查看服务器的性能
	NQ_ZH_HTTPREQF_TRACE, //请求服务器在响应中的实体主体部分返回所得到的内容
	NQ_ZH_HTTPREQF_PATCH, //实体中包含一个表,表中说明与该URI所表示的原内容的区别
	NQ_ZH_HTTPREQF_MOVE, //请求服务器将指定的页面移至另一个网络地址
	NQ_ZH_HTTPREQF_COPY, //请求服务器将指定的页面拷贝至另一个网络地址
	NQ_ZH_HTTPREQF_LINK, //请求服务器建立链接关系
	NQ_ZH_HTTPREQF_UNLINK, //断开链接关系
	NQ_ZH_HTTPREQF_WRAPPED, //允许客户端发送经过封装的请求

	NQ_ZH_HTTPREQF_METHOD_MAX,
	//request option
	NQ_ZH_HTTPREQF_CacheControl,
	NQ_ZH_HTTPREQF_Connection,
	NQ_ZH_HTTPREQF_Date,
	NQ_ZH_HTTPREQF_Pragma,
	NQ_ZH_HTTPREQF_Trailer,
	NQ_ZH_HTTPREQF_TransferEncoding,	
	NQ_ZH_HTTPREQF_Upgrade,	
	NQ_ZH_HTTPREQF_Via,	
	NQ_ZH_HTTPREQF_Warning,	

	NQ_ZH_HTTPREQF_Accept,
	NQ_ZH_HTTPREQF_AcceptCharset,
	NQ_ZH_HTTPREQF_AcceptEncoding,
	NQ_ZH_HTTPREQF_AcceptLanguage,
	NQ_ZH_HTTPREQF_Authorization,
	NQ_ZH_HTTPREQF_Expect,
	NQ_ZH_HTTPREQF_From,
	NQ_ZH_HTTPREQF_Host,
	NQ_ZH_HTTPREQF_IfMatch,
	NQ_ZH_HTTPREQF_IfModifiedSince,
	NQ_ZH_HTTPREQF_IfNoneMatch,
	NQ_ZH_HTTPREQF_IfRange,
	NQ_ZH_HTTPREQF_IfUnmodifiedSince,
	NQ_ZH_HTTPREQF_MaxForwords,
	NQ_ZH_HTTPREQF_ProxyAuthorization,
	NQ_ZH_HTTPREQF_Range,
	NQ_ZH_HTTPREQF_Referer,
	NQ_ZH_HTTPREQF_TE,
	NQ_ZH_HTTPREQF_MDN,
	NQ_ZH_HTTPREQF_UserAgent,
	NQ_ZH_HTTPREQF_Mode,
	NQ_ZH_HTTPREQF_TimeStep,
	NQ_ZH_HTTPREQF_RandKey,
	NQ_ZH_HTTPREQF_CID,
	NQ_ZH_HTTPREQF_batch,

	NQ_ZH_HTTPREQF_Allow,
	NQ_ZH_HTTPREQF_ContentType,
	NQ_ZH_HTTPREQF_ContentEncoding,
	NQ_ZH_HTTPREQF_ContentLanguage,	
	NQ_ZH_HTTPREQF_ContentLocation,
	NQ_ZH_HTTPREQF_ContentMD5,
	NQ_ZH_HTTPREQF_ContentRange,	
	NQ_ZH_HTTPREQF_ContentLength,
	NQ_ZH_HTTPREQF_Expires,
	NQ_ZH_HTTPREQF_LastModified,
	NQ_ZH_HTTPREQF_UaProfile,
	NQ_ZH_HTTPREQF_extensionheader,
	NQ_ZH_HTTPREQF_MAX
}NQ_ZH_HTTPREQF;


/*****************************************************
 HTTP请求头设置函数
*****************************************************/
typedef struct
{
	NQ_ZH_HTTPREQF  id;
	kal_char              *szHead;
	kal_char              *pContent;
	kal_char              *szDefault;
}NQ_zh_defhttpreqf;

typedef struct
{
	kal_int32 StatueCode;
	kal_int32 BodyLength;
	kal_int32 wap_flag;
	kal_int8 * pBody;
}NQ_zh_httpinfo;

typedef struct
{
	kal_int8 *request_buf;
	kal_int8 *recv_buf;
	
	kal_int32 recv_len_max;
	kal_int32 request_offset;
	kal_int32 recv_offset;
	
}NQ_zh_http_context;


extern kal_int32 nq_zh_http_init(void);
extern void nq_zh_http_destroy(void);

extern kal_int32 nq_zh_http_SetDefaultOption(void);
extern kal_int32 nq_zh_http_SetOption(NQ_ZH_HTTPREQF Field, kal_char* szContent);
extern kal_int32 nq_zh_http_SetBodyData(const kal_int8* szBodyData, kal_int32 data_len);
extern void nq_zh_http_SendHttpReq(void);


#endif

⌨️ 快捷键说明

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