请选择 进入手机版 | 继续访问电脑版
查看: 5089|回复: 10

[教程] [无脑码农CrossApp笔记]--网络通信之HTTP

[复制链接]
最佳答案
0 
无脑码农 发表于 2015-3-13 15:02:07 | 显示全部楼层 |阅读模式
本帖最后由 无脑码农 于 2015-9-10 14:57 编辑

CrossApp为我们封装了http的网络框架,其文件在CrossApp引擎包的\extensions\network文件下的 HttpClient、HttpRequest 、HttpResponse。
进行一次http交互,需要涉及的有三个类:
HttpRequest用来描述一个请求。
HttpResponse用来描述对应请求的响应。
HttpClient是一个单例模式的类,它的职责就是负责将收到的HttpRequest对象push到发送队列中,并发送一个信号量驱动工作线程工作,工作线程再将收到的数据封装成一个HttpResponse对象push接收队列,并启用调度来派送数据。
引用头文件:
  1. #include "CrossAppExt.h"
复制代码
请求

  1. /**
  2. 编译到Android平台之后注意添加联网权限
  3. **/
  4. //创建request对象,这里new出来的对象不能使用autorelease(),原因后述  
  5. CAHttpRequest* request = new CAHttpRequest();
  6. //设置URL
  7. request->setUrl("www.9maio.com");
  8. //设置请求类型kHttpGet、kHttpPost、KHttpPostFile、kHttpPut、kHttpDelete、kHttpUnkown
  9. request->setRequestType(CAHttpRequest::kHttpGet);
  10. //这是回调对象和回调函数  
  11. request->setResponseCallback(this, httpresponse_selector(FirstViewController::requestresult));
  12. //使用CCHttpClient共享实例来发送request
  13. CAHttpClient::getInstance()->send(request);
  14. //调用release()
  15. request->release();
复制代码
接收
  1.         void FirstViewController::requestresult(CAHttpClient* clinet, CAHttpResponse* response)
  2.         {
  3.                 if (!response->isSucceed())
  4.                 {
  5.                         return;
  6.                 }
  7.                 //获取返回代码,比如200、404等
  8.                 int statusCode = response->getResponseCode();
  9.                 if (statusCode == 200)
  10.                 {
  11.                         std::string responseRes = "";
  12.                         std::vector<char> *buffer = response->getResponseData();
  13.                         for (unsigned int i = 0; i < buffer->size(); i++)
  14.                         {
  15.                                 responseRes += (*buffer)[i];
  16.        
  17.                         }
  18.                         //查找字符“官方特约”
  19.                         string::size_type idx = responseRes.find(UTF8("官方特约"));
  20.                         if (idx == -1)
  21.                         {
  22.                                 //为找到字符
  23.                                 CCLog(" Not Found");
  24.        
  25.                                 return;
  26.                         }
  27.                         string temp = responseRes.substr(idx, 30);
  28.                         string num = temp.substr(temp.find(UTF8(":")) + 3, temp.find("<") - temp.find(UTF8(":")) - 3);
  29.                         CCLog("temp:%s",temp.c_str());
  30.                 }
  31.                 else
  32.                 {
  33.                         //打印返回代码
  34.                         CCLog("statusCode:%d", statusCode);
  35.                 }
  36.         }
复制代码
最佳答案
0 
Slim 发表于 2015-3-13 15:31:21 | 显示全部楼层
测试工程也放上来吧!

点评

测试工程,稍后统一放。  详情 回复 发表于 2015-3-13 15:43
最佳答案
0 
894613921 发表于 2015-3-13 15:39:01 | 显示全部楼层
你还真高效率 不过有了网络之后 问题又来了  网络图片怎么显示呢?我真不是无耻的伸手党...这个问题真的想破脑袋了. . .

点评

OK!马上搞定,就在今天。  详情 回复 发表于 2015-3-13 15:44
最佳答案
0 
 楼主| 无脑码农 发表于 2015-3-13 15:43:38 | 显示全部楼层
Slim 发表于 2015-3-13 15:31
测试工程也放上来吧!

测试工程,稍后统一放。
最佳答案
0 
 楼主| 无脑码农 发表于 2015-3-13 15:44:53 | 显示全部楼层
894613921 发表于 2015-3-13 15:39
你还真高效率 不过有了网络之后 问题又来了  网络图片怎么显示呢?我真不是无耻的伸手党...这个问题真的想 ...

OK!马上搞定,就在今天。

点评

大神啊  详情 回复 发表于 2015-3-13 15:47
最佳答案
0 
894613921 发表于 2015-3-13 15:47:38 | 显示全部楼层
无脑码农 发表于 2015-3-13 15:44
OK!马上搞定,就在今天。

大神啊

点评

http://www.9miao.com/forum.php?mod=viewthread&tid=58275&page=1&extra=#pid1045683788 欢迎测试代码  详情 回复 发表于 2015-3-13 17:05
最佳答案
0 
 楼主| 无脑码农 发表于 2015-3-13 17:05:04 | 显示全部楼层

点评

最新的版本已经对文件下载封装了,现在是否可用?原来的Http get的方法貌似因为类的重构而不能用了呢  详情 回复 发表于 2015-5-4 16:47
最佳答案
0 
mengli_love 发表于 2015-5-4 16:25:16 | 显示全部楼层
谢谢分享教程
最佳答案
0 
zxzhangxulove 发表于 2015-5-4 16:47:02 | 显示全部楼层
无脑码农 发表于 2015-3-13 17:05
http://www.9miao.com/forum.php?mod=viewthread&tid=58275&page=1&extra=#pid1045683788
欢迎测试代码 ...

最新的版本已经对文件下载封装了,现在是否可用?原来的Http get的方法貌似因为类的重构而不能用了呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

推荐阅读 More>

© 2001-2015 9秒社团

合作伙伴

公司简介 | 联系方式
COPYRIGHT©2015 ZHONGQINGLONGTU NETWORK CO.LTD ALL RIGHTS RESERVED.ICP备11023195号-4
北京中清龙图网络技术有限公司
返回顶部 返回列表