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 заголовок присутствует. Это может произойти по одной из нескольких причин:

  1. Transfer-Encoding заголовок присутствует и указывает chunked кодировка используется. Фрагментированные данные являются самоограниченными.

  2. Content-Type заголовок присутствует с указанием MIME multipart/... данные отправляются, такие как multipart/byteranges, MIME самоуничтожается.

  3. HTTP-ответ прекращается, если сервер закрывает соединение.

См. RFC 2616, раздел 4.4 "Длина сообщения". Больше подробностей.

Другие вопросы по тегам