cocos2d-x中的curl
将请求的接口的动作放在互斥锁中进行
1:
2:
3: pthread_mutex_t mutex;
4: pthread_t thread;
5: sem_t * m_structSem;
6:
7: struct SimpleStructure
8: {
9: int data;
10: float otherData;
11: };
12:
13: void* ThreadFunction(void* arg)
14: {
15: pthread_mutex_lock(&mutex);
16: SimpleStructure* args = (SimpleStructure*)arg;
17:
18: //todo...
19:
20: delete args;
21: pthread_mutex_unlock(&mutex);
22:
23: pthread_mutex_destroy(&mutex);
24: sem_destroy(m_structSem);
25:
26: return NULL;
27: }
28:
29: pthread_mutex_init(&mutex, NULL);
30: m_structSem = sem_open(strThreadName.c_str(), O_CREAT, 0644, 0)
31:
32: //
33: SimpleStructure* args = new SimpleStructure();
34: args->data = 1;
35: args->otherData = 2.0f;
36: //
37: pthread_create(&thread, NULL, &ThreadFunction, args);
38:
39:
使用CURL(Cocos2d-x中将curl做为第三方库加入进来,它被放在cocos2dx/platform/third-party/win32的curl目录下)
1: CURL * curl;
2:
3: string strHtml;
4: string strRetData = "";
5:
6: //第一步:初始化CURL,取得初始化成功后的CURL指针。
7: curl = curl_easy_init();
8:
9: if (!curl)
10: {
11: return false;
12: }
13:
14: CCLOG("Http get string, conn: %s, url: %s", strConnName.c_str(), strUrl.c_str());
15:
16: curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, HttpWriteString);
17: curl_easy_setopt(curl, CURLOPT_WRITEDATA, &strHtml);
18: curl_easy_setopt(curl, CURLOPT_FAILONERROR, true);
19: curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10);
20:
21: //这里定义一个CURL库中API的返回值,用于取得API调用的结果。
22: CURLcode res;
23:
24: //第二步,设定我们用此CURL指针来完成的动作。
25: //参数一为CURL指针,参数二为相应的动作类型枚举,这个枚举值在curl.h中定义,比如本例中的CURLOPT_URL,定义为CINIT(URL, OBJECTPOINT, 2),即联接一个网站的HTTP服务。
26: //参数三为动作对应的数据参数,这里是网站的URL地址。
27: curl_easy_setopt(curl, CURLOPT_URL, strUrl.c_str());
28:
29: ///第三步,执行上面设定的动作处理。返回结果放在res中。
30: res = curl_easy_perform(curl);
31:
32: //最后一步,清除CURL指针,结束对CURL库的使用。
33: curl_easy_cleanup(curl);
34:
35: if (res == CURLE_OK)
36: {
37: strRetData = strHtml;
38:
39: CCLOG("Http get string, conn: %s, ret: %s", strConnName.c_str(), strRetData.c_str());
40: }
41: else
42: {
43: //request error
44: }
45:
46: strRetData = "";
47:
48: CC_SAFE_DELETE(curl);
参考:
How to use pthread
cocos2d-x中的CurlTest深入分析
cocos2d-x中的curl相关推荐
- PHP中使用cURL实现Get和Post请求的方法
PHP中使用cURL实现Get和Post请求的方法,需要的朋友可以参考一下 1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等 ...
- 在PHP中使用CURL,“撩”服务器只需几行——php curl详细解析和常见大坑
作为开发,妹子没得撩就"撩"下服务器吧,妹子有得撩的同学那就左拥妹子右抱服务器吧,况且妹子是要礼物的,服务器又不用.好啦,长话短说再长说,祭出今天的工具--CURL(Client ...
- php5.4curl报错,PHP中使用CURL报错解决方案 rip curl php curl开启 curl下
准备使用CURL实现get和post方法时报错. Eg:CURL初始化时,报如下错误: Fatal error: Call to undefinedfunction curl_init() in C: ...
- php curl title,PHP中使用CURL获取页面title例子
PHP中使用CURL获取页面title例子 发布于 2015-10-03 05:28:40 | 109 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hyperte ...
- php的curl如何返回值,怎么在PHP中利用CURL获取返回值
怎么在PHP中利用CURL获取返回值 发布时间:2021-01-05 16:58:39 来源:亿速云 阅读:96 作者:Leah 怎么在PHP中利用CURL获取返回值?针对这个问题,这篇文章详细介绍了 ...
- java curl get_如何从Java中的curl get请求获取文件?
我正在尝试使用API下载一些XBRL文件.为了做到这一点,我需要做一个卷曲的请求,就像这样:如何从Java中的curl get请求获取文件? curl -XGET http://distribut ...
- PHP中的CURL函数库
开启php curl函数库的步骤 1).去掉windows /php.ini 文件里;extension=php_curl.dll前面的; /*用 echo phpinfo();查看php.ini的路 ...
- PHP中使用CURL实现Get和Post请求方法
1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 cURL 库.本文将介绍 cURL的一些高级特性, ...
- 在Linux中使用cURL进行HTTP POST和GET [复制]
本文翻译自:HTTP POST and GET using cURL in Linux [duplicate] This question already has an answer here: 这个 ...
- 如何在PHP中使用cURL连接到Tor隐藏服务?
本文翻译自:How can I connect to a Tor hidden service using cURL in PHP? I'm trying to connect to a Tor hi ...
最新文章
- java中用于选择按钮的语句_java程序员考试套题1
- swift:简单使用翻页控制器UIPageViewController
- php输出字符unicode码,[PHP]单字符Unicode编码解码函数
- Eclipse卸载Groovy Development tool时,为什么要去查询hana.ondemand.com的资源?
- 某互联网公司校园招聘的小组面试题
- context:annotation-config vs context:component-scan
- Spring Cloud教程–使用Spring Cloud Bus自动刷新配置更改
- python后台框架_我的第一个python web开发框架(14)——后台管理系统登录功能
- 二手交易平台html代码,二手物品交易HTML5模板
- IntelliJ IDEA 2019.1.1 预览版发布,以及对旧版本的更新
- 6.输入四个数,找出最大值方法二
- 【2021杭电多校赛】2021“MINIEYE杯”中国大学生算法设计超级联赛(7)签到题5题
- [转载] 【Python】bytes数据类型
- oracle热点表online rename
- 【优化调度】基于matlab粒子群算法求解水电厂优化调度购电最小问题【含Matlab源码 1234期】
- linux user32.lib,Linux之#pragma的用法
- T检验和p-value含义及计算公式
- 计算机专业书读后感300字,读一本书读后感300字(精选9篇)
- 微信小程序实战–集阅读与电影于一体的小程序项目(二)
- Layman数字土地指南
热门文章
- 用Async函数简化异步代码
- Demo4 Slides.js的使用
- 在SQL2000怎樣用動態實現SQL2005的nvarchar(max)功能
- Dom操作xml的常用方法
- SSH远程管理(用户登录控制及密码验证)
- 《告别失控:软件开发团队管理必读》一一2.6 代系特点
- eclipse中开发python
- 运行JBoss 5.1.0 GA时出现Error installing to Instantiated:name=AttachmentStore state=Described错误的解决办法...
- OSChina 技术周刊第十六期 —— 每周技术精粹
- 转:java中数组与List相互转换的方法