Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2008, 15:50   #1
papa_serg
Пользователь
 
Регистрация: 01.04.2008
Сообщений: 14
По умолчанию Скачивание файла из сети, по средствам TcpClient.

Здравствуйте, скачиваю страницу из сети, по средствам сл. процедуры:

Код:
procedure GetHTMLfile(reqhost,requestn:string);
var
  headers, body, request :string;

begin
request := 'GET http://'+reqhost+'/'+requestn+' HTTP/1.1' + CRLF +
           'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0)'  + CRLF +
           'Host: '+reqhost+ CRLF +
           'Connection: close' + CRLF+ CRLF;

with Sockets.TTcpClient.Create(nil) do begin
  try
    RemoteHost := reqhost;
    RemotePort := '80';
    Connect();
if Connected then
begin
   SendLn(request);
   headers := ReceiveLn(CRLF + CRLF);
   body := ReceiveLn(CRLF + CRLF);
   Form1.Memo1.Text := body;
   Disconnect();   
end;
  finally
   Free;
  end;
  end;
 end;
Всё работает, всё устраивает, кроме одного. В Memo, помимо самого содержания страницы, также, добавляется 3символа в разные части страницы. Вида "18e", "5d7 ", "43a", "704".
Подскажите, как от них избавиться? Спасибо.

Последний раз редактировалось papa_serg; 01.04.2008 в 18:29.
papa_serg вне форума Ответить с цитированием
Старый 01.04.2008, 16:01   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

А в исходном коде их точно нет ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 01.04.2008, 16:05   #3
papa_serg
Пользователь
 
Регистрация: 01.04.2008
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
А в исходном коде их точно нет ?
Нет, нету.
papa_serg вне форума Ответить с цитированием
Старый 01.04.2008, 16:47   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Ну чтож, тогда давайте страницу и какие 3 символа добавляются, посмотрим
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 01.04.2008, 17:29   #5
papa_serg
Пользователь
 
Регистрация: 01.04.2008
Сообщений: 14
По умолчанию

Вот к примеру: http://nic.ru/dns/payment/wm.html
Cохраняется так: http://summervoice.com/wm.html
papa_serg вне форума Ответить с цитированием
Старый 01.04.2008, 22:26   #6
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Это не ошибка, а "последствия" Transfer-Encoding: chunked.

Вот так ответ с указанного сайта выглядит в ответ на запрос HTTP 1.0:
Цитата:
HTTP/1.1 200 OK
Date: Tue, 01 Apr 2008 18:08:33 GMT
Server: Apache/1.3.29
Last-Modified: УТ, 26 НБТ 2008 10:35:09 GMT
Content-Type: text/html; charset=windows-1251
X-Cache: MISS from www.nic.ru
Connection: close

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
******************************
*****************************
А вот так в ответ на запрос HTTP 1.1:
Цитата:
HTTP/1.1 200 OK
Date: Tue, 01 Apr 2008 18:08:22 GMT
Server: Apache/1.3.29
Last-Modified: УТ, 26 НБТ 2008 10:35:09 GMT
Content-Type: text/html; charset=windows-1251
X-Cache: MISS from www.nic.ru
Connection: close
Transfer-Encoding: chunked

1400
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
*****************************
*****************************

Как избавиться:
1) работать через HTTP 1.0
2) подправить программу, чтобы удовлетворять HTTP 1.1. В RFC 2068 описан формат полей.
B_N вне форума Ответить с цитированием
Старый 01.04.2008, 23:22   #7
papa_serg
Пользователь
 
Регистрация: 01.04.2008
Сообщений: 14
По умолчанию

Спасибо)
(10слов.)
papa_serg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передачи по сети файла Alar Работа с сетью в Delphi 4 07.02.2011 23:21
скачивание файла после просмотра рекламы westakof JavaScript, Ajax 3 02.07.2008 15:48
TcpClient и TcpServer DOLBY Работа с сетью в Delphi 5 17.12.2007 10:43
Скачивание файла с прогрессом CoDeR Работа с сетью в Delphi 2 22.10.2007 09:10
TCPServer и TCPClient Antoha Работа с сетью в Delphi 19 06.10.2007 12:01