如题

解决方案 »

  1.   

    可能服务器还在不停的发送数据。你加个idlogevent看看是不是在不停的接受数据
      

  2.   

    不知道你所说的卡死什么意思,是收不到数据,还是没有数据返回。
    有时候收不到数据返回,是因为web网站的原因,需要设置
    idhttp1.HandleRedirects := True;
    这样才能返回数据正常的。
      

  3.   

    这几个方法都试过了,可是还是不行。
    我已经使用了线程,但是不行,还是会有卡死的想象发生。idhttp1.HandleRedirects:=true;
    这个属性我也已经设置过了。可是还是不行
      

  4.   

    线程当中用idhttp.get(),应该不会卡啊。。把你的代码贴出来看看
      

  5.   

    get是需要时间的,这个要看卡死是多久,一般几秒钟是正常的,如果一直卡死,那应该是你写的有问题
      

  6.   

    indy是阻塞式的socket,因此遇过在主线程中,并且get时间长,那么主界面就会假死。
    印象中indy有个 什么放置冻结的组件,叫idfrxxxx来着,拖一个到窗体上就行,不过效果也就那样,依然会卡。
      

  7.   

    楼主可以到我的,下载中看看winhttp封装
      

  8.   

    indy要正常使用可采用两种方法
    1、线程中indy
    2、主线程indy,但是主界面放置IdAntiFreeze 控件并设置好属性
      

  9.   

    idhttp.ConnectTimeout := 20000
    idhttp.ReadTimeout := 30000在某些情况下,由于防火墙的原因,TCP连接会处于阻断,又无状态响应的状态,所以必须加上超时。另
    建议用try except把idhttp操作包起来,在后续对ResponseCode进行判断,200<=responsecode<300,是正常(HandleRedirects:=true)
      

  10.   

    CaesarDM 通过判断返回状态来判断结果是否正确
    coolspac 是怀疑你的线程是否释放正确
      

  11.   

    楼主肯定是在主线程中用的IdHttp
      

  12.   

    放到子线程中,idhttp是阻塞式通讯,放在主线程里,如果网络不好,就会住主主线程
      

  13.   

    http://news.baidu.com/我想写个程序。大概的功能是:
    1.类似定制版的浏览器。读取指定页面。http://news.baidu.com/然后软件上有个登陆窗口。不是在网页上登陆。直接在软件上用“按钮+文本框”登陆百度。
    2.读取某网站的页面内容。获取他最新更新的新闻。并且自动刷新网页。在网页上有新闻的时候。弹出消息对话框。告诉我有最新新闻了。能弹出对话框的同时 要是能播放个音乐什么的最好了 。
    3.读取网页指定区域。的指定内容。比如网站上的新闻列表。读出来在软件的Webbrowser控件界面上显示。出来。不是直接是浏览器。不需要读取这个页面。只要网页上的一部分内容就好了。
    4.我不要再软件上让人看到百度广告等等垃圾消息。只要新闻。每隔20秒自动刷新一次。弹窗对话框或者语音。提示有新的新闻出来了。看看有没有高手有现成的或者类似的源码的。
    发给我邮箱:1617822579(at)qq.com 或者联系我qq# 1617822579
      

  14.   

    换ics吧,比indy好用
    或者把get,post等操作都放在线程里,这样不会让主界面卡住