我无法让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
答案 0 :(得分:1)
使用当前的Indy 10 SVN快照,您显示的URL正常。它不会卡住。
至于ContentLength
属性为-1的原因,当没有Content-Length
标题出现时会发生这种情况。这可能是由以下几个原因之一发生的:
存在Transfer-Encoding
标头,并指定正在使用chunked
编码。分块数据是自我终止的。
存在Content-Type
标头,指定正在发送MIME multipart/...
数据,例如multipart/byteranges
。 MIME是自终止的。
通过让服务器关闭连接来终止HTTP响应。
请参阅RFC 2616 Section 4.4“消息长度”。了解更多详情。