首页 > 代码库 > 开源一个C++实现的简单HTTP协议处理库

开源一个C++实现的简单HTTP协议处理库

HTTP协议库有两个版本,一个是基于WININET,一个则是使用socket实现的。

可以支持POST 、GET请求,断点下载、重定向下载、下载进度回调,不支持HTTPS。

接口头文件声明如下:

#pragma once
#include <string>
using std::string;
using std::wstring;
#include <stdio.h>
#include <tchar.h>



enum REQUEST_TYPE
{
	post,
	get,
};


////////////////////////////////////////////////////////////////////////////////////
//HTTP请求接口类
class IHttpInterface
{
public:
	//HTTP请求功能
	virtual string	Request(const string& strUrl, REQUEST_TYPE type, const string& strPostData=http://www.mamicode.com/"", string strHeader="")=0;>
源代码使用VS2008开发,有DLL、LIB对应的编译方式。

使用时也比较简单的,示例代码如下:

// UseHttp.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "../IHttp/IHttpInterface.h"
#pragma comment(lib, "../bin/Release_s/IHttp")


int _tmain(int argc, _TCHAR* argv[])
{

	IHttpInterface* pHttp=CreateHttpInstance();
	//pHttp->Download(L"http://android.shoujids.com/software/download?id=154103", L"c:\\test.apk");	
	string strUrl="http://www.baidu.com";	
	string str=pHttp->Request(strUrl, get);
	pHttp->FreeInstance();
// 	CHttpSocket hs;
// 	hs.ConnectUrl("android.shoujids.com");
// 	int nLoadSize=0;
// 	hs.DownLoadFile("http://android.shoujids.com/software/download?id=154103", "c:\\test.zpk", &nLoadSize);
	return 0;
}
源码下载地址:HTTP协议库

有bug欢迎指正。

开源一个C++实现的简单HTTP协议处理库