delphi和ICS[HTTP.Cli1]
所以我在获取谷歌搜索网页时遇到了问题。 当我尝试简单查询时,例如:delphi和ICS[HTTP.Cli1],delphi,Delphi,所以我在获取谷歌搜索网页时遇到了问题。 当我尝试简单查询时,例如: http://www.google.ba/search?q=inurl:Stackoverflow&num=100&hl=en&start=0&sa=N 在这种情况下,它是inurl:StackOverflow Indy和ICS Http.Cli1下载网页没有任何问题,但当我尝试时: http://www.google.ba/search?q=inurl:Stackoverflow site:b
http://www.google.ba/search?q=inurl:Stackoverflow&num=100&hl=en&start=0&sa=N
在这种情况下,它是inurl:StackOverflow
Indy和ICS Http.Cli1下载网页没有任何问题,但当我尝试时:
http://www.google.ba/search?q=inurl:Stackoverflow site:ba&num=100&hl=en&start=0&sa=N
在本例中,查询是inurl:Stackoverflow site:ba我收到了错误的请求,所以我查看了地址栏,发现Google用%20替换了空格,所以下一步我尝试:
idhttp1.get('http://www.google.ba/search?q=inurl:Stackoverflow%20site:ba&num=100&hl=en&start=0&sa=N');
我在印第上出错了,所以我尝试了ICS
Http.Cli1.url('http://www.google.ba/search?q=inurl:Stackoverflow%20site:ba&num=100&hl=en&start=0&sa=N');
Http.cli1.get;
我收到“服务不可用”错误。
为什么呢?当我将粘贴链接复制到web浏览器时,它可以正常打开。为什么我不能用这些组件得到它。我应该怎么做 您使用的是哪个版本的Indy?我使用delphi 7 Indy 9.00.10,但我更喜欢为ICS找到解决方案,当我使用Indy时,我的程序有时会冻结,使用ICS时,它永远不会发生……Indy使用阻塞套接字操作,这是出于设计。如果你在主线程的上下文中使用它,你的应用程序将在Indy忙时显示为冻结,因为主消息循环没有处理新消息。您可以将TID防冻剂组件放到主窗体上,也可以将Indy逻辑移动到单独的工作线程中。TID防冻剂做得很好,谢谢提示: