Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WinInet - не все странички могу получить [D7, XP]


чебурашка картман ©   (2009-03-25 12:28:00) 

Добрый день!

Создаю соединение, пытаюсь получать странички:

const
 HTTP_PORT = 80;
 CLRF = #13#10;
 Header = 'Content-Type: application/x-www-form-urlencoded' + CLRF;

 FSession := InternetOpen('DMFR', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
 if not Assigned(FSession) then Exit;
 try
   // Попытка соединения с сервером
   FConnect := InternetConnect(FSession, PChar(FHost), HTTP_PORT, nil,
                               'HTTP/1.1', INTERNET_SERVICE_HTTP, 0, 0);
   if not Assigned(FConnect) then Exit;
   try
     // Подготавливаем запрос страницы
     Ansi := 'text/*';
     FRequest := HttpOpenRequest(FConnect, 'GET', PChar(FScript), 'HTTP/1.1',
                                 '', @Ansi, INTERNET_FLAG_RELOAD, 0);
     if not Assigned(FConnect) then Exit;
     try
       // Добавляем заголовки
       if not (HttpAddRequestHeaders(FRequest, Header, Length(Header),
                                     HTTP_ADDREQ_FLAG_REPLACE or
                                     HTTP_ADDREQ_FLAG_ADD)) then Exit;
       // Отправляем запрос
       if not (HttpSendRequest(FRequest, nil, 0, nil, 0)) then Exit;
....

но не все, для некоторых приходит ответ Bad Request... так думаю, надо что-то еще в заголовок добавить. Что?


чебурашка картман   (2009-03-25 16:33:00) [1]


> Rouse_ ©   (25.03.09 15:59) [5]

Спасибо, с этим понятно, но... получить я хочу всегда только текст странички... т.е. получается, что просто не все данные в заголовок заношу(сейчас нет возможности проверить)?


Rouse_   (2009-03-25 15:59:00) [2]

Они заполняют заголовок исходя из того что именно хотят получить от сервера. Более подробно по всем заголовкам есть в RFC


чебурашка картман   (2009-03-25 15:30:00) [3]


> Rouse_ ©   (25.03.09 15:02) [3]

Хорошо, а как мне узнать, какой именно заголовок нужен? Как браузеры это узнают?


Rouse_   (2009-03-25 15:02:00) [4]


> Если я буду формировать один и тот же заголовок, полученный
> сниффером, все странички получу?

Нет конечно, для каждого должен быть свой, темболее у тебя идет мешанина из GET/POST


чебурашка картман   (2009-03-25 13:34:00) [5]


> Rouse_ ©   (25.03.09 12:53) [1]

поглядел... очень много всего отправляется... и несколько раз... и POST присутствует...
Что из отправляемого необходимо и как узнать, что этого достаточно? Если я буду формировать один и тот же заголовок, полученный сниффером, все странички получу?


Rouse_   (2009-03-25 12:53:00) [6]

Посмотри сниффером что отправляется из браузера и сформируй правильный заголовок запроса.


Наверх

Титульная страница Поиск, карта сайта Написать письмо