跨平台 httprequest 库

  • 本帖最后由 hnney 于 2012-4-28 18:03 编辑 *

    学习cocos2d-x已有一段时间了,感觉这引擎挺好的,是c++程序员进入移动游戏开发的好平台啊。 但是如果做SNS类的手机游戏,cocos2d-x唯一欠缺的是网络部分,网上搜了个遍,没发现他人公布的cocos2d-x可用的网络库。 于是自己写了一个。在一些网友(造梦师 等)的帮助下,完成了一个最基本的可用的版本,已在win32和android上试过。 代码地址: https://github.com/hnney/Asynchronous--httprequest-handler (使用了Libcurl + pthread库)
    欢迎大家对代码进行修改,优化, 拍砖啊(由于第一次使用git, 目前还不知如果允许他人能够自由提交代码,如果有知道的请告诉我,方便其他人提交代码)

使用方法很简单,如下:

  1. 包含 HTTPRequest.h ,在AppDelegate::applicationDidFinishLaunching 调用 HTTPRequest::instance()->run();
  2. 开启一个定时器来调用HTTPRequest::instance()->dispatch() 分发事件。3. 编写回调函数, 如:HelloWorld::complete_callback, HelloWorld::error_callback
  3. 调用HTTPRequest::instance()->send_request() 发送请求(目前只支持GET),
    参数说明:1:请求类型, 2:请求地址, 3:如果是下载文件,则需要提供保存文件地址,4:成功后的回调函数,5:失败后的回调函数。 例子:
    1)下载文件:HTTPRequest::instance()->send_request(EVENT_DOWNLOAD_FILE, “http://www.baidu.com”, “index.html”, &HelloWorld::complete_callback, HelloWorld::error_callback);
    2)请求数据:HTTPRequest::instance()->send_request(EVENT_REQUET_DATA, “http://www.baidu.com”, NULL, &HelloWorld::complete_callback, HelloWorld::error_callback);

我看看,有用处

能同时提供Xcode版本吗,这样方便mac的用户使用哦

— Begin quote from ____

子龙山人 发表于 2012-5-8 14:30 url

能同时提供Xcode版本吗,这样方便mac的用户使用哦

— End quote

等我整一个mac开发环境后,自己先试试看,应该是可以的。 因为pthread 和 libcurl 在mac下都能用的。

2dx都自带libcurl+pthread得。。。

— Begin quote from ____

kineting 发表于 2012-5-9 14:16 url

2dx都自带libcurl+pthread得。。。

— End quote

我只是对Libcurl + pthread简单的封装了一下而已。

哇,是的,改出一个问题了,bug已经修复了。 请重新下载一下源码。:smiley:

— Begin quote from ____

ttly 发表于 2012-5-22 21:38 url

经过测试,在win32下正常,在ios下崩溃,需要再处理下

— End quote

目前由于还没有IOS的开发环境,我没法去测试啊。有时间,你帮忙改一下吧。

原来是出自这里

谢谢分享,下下来研究研究

“libcurltest.exe”: 已加载“E:hnney-Asynchronous–httprequest-handler-0b446faDebuglibcurltest.exe”,已加载符号。
“libcurltest.exe”: 已加载“C:WindowsSystem32
tdll.dll”,Cannot find or open the PDB file
“libcurltest.exe”: 已加载“C:WindowsSystem32kernel32.dll”,Cannot find or open the PDB file
“libcurltest.exe”: 已加载“C:WindowsSystem32KernelBase.dll”,Cannot find or open the PDB file
“libcurltest.exe”: 已加载“C:WindowsSystem32msvcp100d.dll”,已加载符号。
“libcurltest.exe”: 已加载“C:WindowsSystem32msvcr100d.dll”,已加载符号。
“libcurltest.exe”: 已加载“E:hnney-Asynchronous–httprequest-handler-0b446falibcurld.dll”,Cannot find or open the PDB file
程序“ libcurltest.exe: 本机”已退出,返回值为 -1072365566 (0xc0150002)。