Delphi XE3 Indy Stuck并没有返回

时间:2013-09-02 17:51:41

标签: delphi indy indy10 idhttp

我无法让Indy返回某些URL并且我不确定发生了什么。我有一些非常简单的测试代码来返回我想要的URL并将HTML放到TMemo中。

With IdHTTP Do
Begin
  s := Get(txtURL.Text);
  txtOutput.Lines.Add('-------' + sLineBreak + sLineBreak + s);
End;

然而,当我尝试使用此网址时: - http://nuediamonds.com/synthetic_diamond_rings.php它永远不会返回,只是锁定。我添加了一个OnWork事件,但我在那里看到的内容长度总是-1

有没有人有任何想法,我迫切需要解决这个问题。

此致 Anthoni

1 个答案:

答案 0 :(得分:1)

使用当前的Indy 10 SVN快照,您显示的URL正常。它不会卡住。

至于ContentLength属性为-1的原因,当没有Content-Length标题出现时会发生这种情况。这可能是由以下几个原因之一发生的:

  1. 存在Transfer-Encoding标头,并指定正在使用chunked编码。分块数据是自我终止的。

  2. 存在Content-Type标头,指定正在发送MIME multipart/...数据,例如multipart/byteranges。 MIME是自终止的。

  3. 通过让服务器关闭连接来终止HTTP响应。

  4. 请参阅RFC 2616 Section 4.4“消息长度”。了解更多详情。