Delphi XE3 Indy Stuck и не возвращается
У меня проблемы с тем, чтобы Indy вернулся по определенным URL-адресам, и я не уверен, что происходит. У меня есть несколько очень простых тестовых кодов, которые возвращают нужный мне URL и помещают HTML в TMemo.
With IdHTTP Do
Begin
s := Get(txtURL.Text);
txtOutput.Lines.Add('-------' + sLineBreak + sLineBreak + s);
End;
Тем не менее, когда я пытаюсь сделать это с помощью этого URL: - http://nuediamonds.com/synthetic_diamond_rings.php он никогда не возвращается и просто блокируется. Я добавил событие OnWork, но все, что я там увидел, это то, что длина контента всегда была -1
У кого-нибудь есть идеи, пожалуйста, я отчаянно нуждаюсь в решении этого.
С уважением, Антони
1 ответ
URL, который вы показали, отлично работает для меня, используя текущий снимок Indy 10 SVN. Это не застревает.
Что касается того, почему ContentLength
свойство -1, это происходит, когда нет Content-Length
заголовок присутствует. Это может произойти по одной из нескольких причин:
Transfer-Encoding
заголовок присутствует и указываетchunked
кодировка используется. Фрагментированные данные являются самоограниченными.Content-Type
заголовок присутствует с указанием MIMEmultipart/...
данные отправляются, такие какmultipart/byteranges
, MIME самоуничтожается.HTTP-ответ прекращается, если сервер закрывает соединение.
См. RFC 2616, раздел 4.4 "Длина сообщения". Больше подробностей.