移动 [请问用ICS中的httpcli控件如何获取网页源文件。] 贴说明

CACACACACA 2010-10-08 01:59:14
VCL小版有三个同样标题的贴子,准备移两个过来,没想到的是移了一个,另两个打不开了. (页面错误)

未找到文件



Firefox 无法在 http://topic.csdn.net/u/20101008/09/be633899-4316-41c4-8911-59d01df33798.html?13927 找到该文件。



* 请检查文件名的大小写或者其他拼写错误。

* 请检查文件是否被移动,重命名或者删除。





//--------------
不知道怎么回事. 现在VCL小版还是有两个,就是打不开.这个也移不回去了(没权限).
...全文
250 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
youmosheng 2010-10-11
  • 打赏
  • 举报
回复
真的谢谢各位了!我再去开个帖子
土著巫师 2010-10-10
  • 打赏
  • 举报
回复
回复楼上:

  HttpCli组件提供Post,Get,Head方法都是同步的,也就是说通讯不结束(不管是成功或失败)函数是不会返回的,这几个方法内部都还是调用异步处理,只是不处理结束函数不返回,这些方法内部有一个等待结束的消息循环处理,所以虽然数据没有返回,也不影响主界面操作响应(CPU占用大一些)。

  实际上任何HTTP通讯都不太可能会立即返回,就像我们平时使用IE要经常使用F5刷新一样,这也是造成你“再也不走了”的根本原因,除非网络状况和服务端响应超快。

  所以解决你的问题最简单的方法就是开一个线程或管理一个线程池完成HTTP通讯请求,再把数据回转给主线程(或干脆再开一个数据处理线程),这样就可以把通讯和业务处理及界面展示分离开。如果你不知道怎么利用TThread基类处理多线程,我就无语了,看看CB自带的例子吧。

  说HttpCli组件天生就支持异步处理,是因为ICS组件在利用SOCKET编程I/O模型时使用了异步消息选择模型,所以效率还是比较高的,POST/GET方法内部真正完成通讯的I/O模型没有改变,只是为了开发者方便引入了同步函数;异步处理确实需要比较多的代码,很抱歉不方便把公司项目中的代码直接发给你;HttpCli的异步函数是GetASync、PostASync,你可以试一试,搞不明白就看源代码。
CACACACACA 2010-10-10
  • 打赏
  • 举报
回复
有劳妖哥了。


//---------

另外,不要在这里讨论了---->没分的---->建议在原贴中回复.

要么 youmosheng 再开贴给分 :-)
ccrun.com 2010-10-10
  • 打赏
  • 举报
回复
同意jjwwang
土著巫师 2010-10-09
  • 打赏
  • 举报
回复
TMemoryStream *DataIn = new TMemoryStream;
TMemoryStream *DataOut = new TMemoryStream;
DataOut->Write( "MyPostData", 10 );
DataIn->Position = 0;
DataOut->Position = 0;
HttpClient->RcvdStream = DataIn;
HttpClient->SendStream = DataOut;
HttpClient->URL = "http://www.csdn.net";
HttpClient->Post(); // 或是HttpClient->Get(),如果不需要POST数据给服务器的话
完了后DataIn里就可以得到WEB服务端返回的源代码(或流数据)
delete DataIn;
delete DataOut;
// HttpClient为HttpCli对象就不用解释了吧。:)这里是同步攻取数据方式,实际上ICS天生支持异步方式,代码量太大,就不在这里贴出来了。
ccrun.com 2010-10-09
  • 打赏
  • 举报
回复
帖子列表中看到是三个,但是现在只有一个可以访问了,可能是BUG。
我来转移那个茶馆的到技术区。
youmosheng 2010-10-09
  • 打赏
  • 举报
回复
巫师你好!我只用到了Httpclient->get,获取网页源文件,在读取网页源文件的时候程序有时会停滞在httpclient->get()这个语句上,再也不走了!网上看了好像要用多线程处理,具体怎么处理我也不知道,你说的天生支持异步方式是个什么意思,能解决这个问题吗?方便的话希望能发把代码发我邮箱上,418953276@qq.com,谢谢了。

552

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧