1 Star 0 Fork 3

liyanan / async_curl

forked from Alm / async_curl 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

async_curl

介绍

使用libcurl实现的异步 http/https 其它协议可自行添加

软件架构

依赖libcurl至少7.66.0的版本,目前Windows和linux编译的是7.67.0的版本

安装教程

linux:

  1. 升级libcurl至少到7.66的版本

  2. cd到async_curl/build/linux目录下

  3. make编译生成libasync_curl.so库,make test编译生成测试文件

  4. 运行./testexe测试用例

windows:

  1. 可以直接使用git中上传的libcurl该版本为7.67.0以动态库链接的方式(c/c++用的md/mdd编译)

  2. 直接打开async_curl/build/windows下的项目工程文件

  3. 编译生成相关库文件,依赖的库在async_curl/libcurl/lib/win目录下

使用说明

  1. 引用头文件async_curl/include

  2. 引用库libasync_curl.so

  3. 测试用例sync_curl/testcpp/test.cpp


struct MyCallBack: public CurlCallBack { virtual int operator() (MsgPack* pack) { HttpMsgPack* http_pack = dynamic_cast<HttpMsgPack*>(pack);

	if (http_pack->_errMsg.empty())
	{
		// 输出到文件
		string filename = "out_" + to_string(pack->_msgid) + ".txt";
		fstream o(filename, ios::in | ios::out | ios::trunc);
		o << http_pack->_rspData;
		o.close();

		// 输出到屏幕
		cout << http_pack->_rspData;
	}
	else
	{
		cout << "error:" << http_pack->_errMsg;
	}

	return 0;
}

};

int main() { // 配置 HttpConfig config; config._timeout = 30;

// 服务
Server* server = Server::CreateHttp(WriteLogConsole);

// 初始化
server->Init(&config);

MyCallBack mycallback;
server->SetCallBack(&mycallback);

thread thr(std::bind(&Server::Run, server));

/*
	投递消息:
	默认投递get方法,目前不加任何头部字段信息;
	只加了一个Content-Type:application/x-www-form-urlencoded;charset=UTF-8,
	改头部信息由pack._format = HttpContextFormat::URLENCODED指定
 */
int numcount = 100;
while (--numcount > 0)
{
	HttpMsgPack pack;
	pack._format = HttpContextFormat::URLENCODED;
	pack._url = "www.baidu.com";
	server->PostPack(&pack);
	this_thread::sleep_for(chrono::seconds(2));
}

thr.join();

return 0;

}

空文件

简介

使用libcurl实现的异步 http/https,支持常用的get/post请求 其它协议可自行添加 展开 收起
C/C++
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C/C++
1
https://gitee.com/knight-liyanan/async_curl.git
git@gitee.com:knight-liyanan/async_curl.git
knight-liyanan
async_curl
async_curl
master

搜索帮助