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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2013, 18:15   #1
JGalt
Пользователь
 
Регистрация: 15.05.2013
Сообщений: 41
По умолчанию Как исправить кодировку?

Всем привет! Пытаюсь с помощью synapse получить код страницы:
Код:
var

 b:string;
 HTTP: THTTPSend;
 Data,f: TStringStream;
 begin
  http:=thttpsend.Create;
  Data := TStringStream.Create('');
   Data.WriteString('(Request-Line):GET /catalog/181/women.aspx HTTP/1.1');
  Data.WriteString('Host:www.wildberries.ru');
  Data.WriteString('Content-Type:text/html; charset=windows-1251');
  Data.WriteString('Connection:keep-alive');
  Data.WriteString('Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8');
  Data.WriteString('User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36');
  Data.WriteString('Accept-Encoding:gzip');
  Data.WriteString('Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4');
  Data.Position := 0;
  HTTP.Document.LoadFromStream(Data);
  HTTP.HTTPMethod('get','http://www.wildberries.ru/catalog/1/women.aspx');
    RichEdit2.Lines.Add(http.Headers.Text);
    RichEdit1.Lines.LoadFromStream(HTTP.Document);
   
  http.Clear;
 end;
Как исправить кодировку?
JGalt вне форума Ответить с цитированием
Старый 18.10.2013, 19:06   #2
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

Причем здесь кодировка? Лучше исправь код, т.к. нет смысла засовывать в тело документа то, что должно относиться к заголовкам
Lardes вне форума Ответить с цитированием
Старый 18.10.2013, 19:09   #3
JGalt
Пользователь
 
Регистрация: 15.05.2013
Сообщений: 41
По умолчанию

АГА =) ладно, попробую =)

А так:
Код:
var

 b:string;
 HTTP: THTTPSend;
 Data: TStringStream;
 stream:TMemoryStream;
 begin
  http:=thttpsend.Create;
  Data := TStringStream.Create('');
   Data.WriteString('(Request-Line):GET /catalog/181/women.aspx HTTP/1.1');
  Data.WriteString('Host:www.wildberries.ru');
  Data.WriteString('Content-Type:text/html; charset=windows-1251');
  Data.WriteString('Connection:keep-alive');
  Data.WriteString('Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8');
  Data.WriteString('User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36');
  Data.WriteString('Accept-Encoding:gzip');
  Data.WriteString('Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4');
  HTTP.HTTPMethod('get','http://www.wildberries.ru/catalog/181/women.aspx');
  RichEdit2.Lines.Add(http.Headers.Text);
  Data.Position:=0;
  stream:=HTTP.Document;
  stream.Position:=0;
  RichEdit1.Lines.LoadFromStream(stream);
  http.Clear;
 end;

Последний раз редактировалось Stilet; 21.10.2013 в 19:38.
JGalt вне форума Ответить с цитированием
Старый 18.10.2013, 19:52   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

ну и зачем тут эта Data?
eval вне форума Ответить с цитированием
Старый 18.10.2013, 19:53   #5
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Data: TStringStream; вам здесь вообще не нужно.
Кольша вне форума Ответить с цитированием
Старый 18.10.2013, 20:40   #6
JGalt
Пользователь
 
Регистрация: 15.05.2013
Сообщений: 41
По умолчанию

Согласен, date может и не нужно, но итог тот же. Код получается из иероглифов.
JGalt вне форума Ответить с цитированием
Старый 18.10.2013, 21:40   #7
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

Во вложении смотри проект.

Код:
Data.WriteString('(Request-Line):GET /catalog/181/women.aspx HTTP/1.1');
  Data.WriteString('Host:www.wildberries.ru');
  Data.WriteString('Content-Type:text/html; charset=windows-1251');
  Data.WriteString('Connection:keep-alive');
  Data.WriteString('Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8');
  Data.WriteString('User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36');
  Data.WriteString('Accept-Encoding:gzip');
  Data.WriteString('Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4');
  Data.Position := 0;
  HTTP.Document.LoadFromStream(Data);
Здесь ты записываешь "заголовки" в тело документа (HTTP.Document), а это неверно. Правильнее будет:

Код:
  HTTP.Headers.Add('Accept-Encoding: gzip, deflate');
  HTTP.Headers.Add('Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4');
  { и так далее }
На будущее, если ты будешь указывать в заголовках (HTTP.Headers) такие параметры, как Accept-Encoding: gzip, то сервер, если он поддерживает, отправит тебе в ответ сжатый исходник страницы.

UPD. Пожалуйста
Вложения
Тип файла: rar GET.rar (86.3 Кб, 12 просмотров)

Последний раз редактировалось Lardes; 18.10.2013 в 22:10.
Lardes вне форума Ответить с цитированием
Старый 18.10.2013, 21:58   #8
JGalt
Пользователь
 
Регистрация: 15.05.2013
Сообщений: 41
По умолчанию

Круто! Спасибо. Наконец то понял что тупил. Сначала думал через пост делать.

Странно! Вчера получал нормальный код, а сегодня опять хрень! =( В чем может быть проблема?

Последний раз редактировалось Stilet; 21.10.2013 в 19:48.
JGalt вне форума Ответить с цитированием
Старый 19.10.2013, 11:20   #9
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Код получения в студию.
Кольша вне форума Ответить с цитированием
Старый 19.10.2013, 12:12   #10
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Вчера была пятница, в пятницу всегда все ок.
eval вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сменить кодировку у проекта Макс Башкинов Общие вопросы Delphi 9 13.02.2012 18:32
Как использовать свою кодировку в программе? The SCS Общие вопросы Delphi 9 23.01.2012 23:44
Как установить кодировку байтового потока? vedro-compota Общие вопросы .NET 9 06.01.2011 11:52
Как поменять кодировку windows Silverstreet Помощь студентам 4 23.01.2010 21:40