Слушай, Максим.
Я создаю файл
Код: Выделить всё
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<form action="http://www.drugreg.ru/Bases/WebRemoveQuery.asp?Action=MONT"
method="post">
<input name="Отправить" type="submit" value="Отправить">
<input type="text" size="30" name="lstSelectMonth" value="7">
<input type="text" size="30" name="lstSelectYear" value="2001">
</form>
</body>
</html>
загружаю его в броузер, жму кнопку и получаю что мне надо. А как бы его
программно грузить? То есть лежит он, скажем, на c:\docs\webremove.html, как
послать запрос?
С уважением,
Михаил
Бравзер видимо с разрешенными куками? Потому, что ежели я в своей мозилке блокирую куки с этого сайта, то фиг он мне что-нибудь покажет.
А как бы его программно грузить? То есть лежит он, скажем, на c:\docs\webremove.html, как послать запрос?
"Чем послать запрос" - в этом вопрос.
Ежели работать с сокетами, то подключиться к
http://www.drugreg.ru:80, послать ему:
GET /Bases/WebRemoveQuery.asp?Action=MONT HTTP/1.1
Host:
http://www.drugreg.ru
Content-Length: 35 <--- это длина передаваемых POST-ом данных
lstSelectMonth=7&lstSelectYear=2001
, после чего прочитать из сокета ответ. Практика показывала (не помню точно, когда и почему), что иногда read возвращает только заголовки HTTP, тогда надо проверить, нет ли в заголовках Content-Length, и если есть, и тело документа еще не прочитано, то дочитать из сокета указанное число байт.
Ну или воспользоваться чем-то готовым catalystическим.
WinInet для работы с HTTP ни разу не использовал. Как в нем идет работа с GET/POST данными и куками - на сильно в курсе. Из прочитанного в MSDN вчера следует, что любые HTTP заголовке можно (придется?) обрабатывать руками.
--
Best regards,
Maxim Yemelyanov
Да, с куками.
WinInet для работы с HTTP ни разу не использовал. Как в нем идет работа с GET/POST данными и куками - на сильно в курсе. Из прочитанного в MSDN вчера следует, что любые HTTP заголовке можно (придется?) обрабатывать руками.
Я в общем запутался в 2-х соснах
hSession =
InternetOpen(Agent,INTERNET_OPEN_TYPE_PRECONFIG,,,INTERNET_FLAG_NO_CACHE_WRITE)
hUrl = InternetOpenUrl(hSession, Url,,0,INTERNET_FLAG_NO_CACHE_WRITE,0)
Чего надо подставить в Url, чтобы локальный файл прочитать? Пробовал Url='
http://localhost/C:/docs/test.html' ругается на какие-то манифесты и полисы (GetLastError возвращает что-то вроде 12008).
Видать, где-то какие-то флаги надо расставить правильно?
С уважением,
Михаил
А на localhost-е у тебя сервер запущен?
Локальный файл - это file://
Только я не понял, что ты потом с этим локальным файлом делать собрался?
... ругается на какие-то манифесты и полисы (GetLastError возвращает что-то вроде 12008).
Видать, где-то какие-то флаги надо расставить правильно?
Для такого случая - вряд ли. Хотя, можно указать INTERNET_FLAG_NO_CACHE_WRITE.
По RFC данные, полученные в результате POST запроса не должны кешироваться, но кто этих мелкомягких знает... 6-я Опера, например, может закешировать.
--
Best regards,
Maxim Yemelyanov
А на localhost-е у тебя сервер запущен?
Не-а...
Локальный файл - это file://
Только я не понял, что ты потом с этим локальным файлом делать собрался?
Его урлу подсунуть в InternetOpenUrl.
Дуга Михаил
Видать, где-то какие-то флаги надо расставить правильно?
Это надо у себя открыть веб-сервер и должным образом сконфигурить... Блин, руки не доходят разобраться в библиотеке, может быть, в выходные разберусь. Но для интранета работает....
---------------------------------------
C уважением,
Юрий Философов
(Добавление)
Его урлу подсунуть в InternetOpenUrl.
А дальше?
--
Best regards,
Maxim Yemelyanov
Он открывает drugreg.ru, я его читаю. Меня терзают смутные сомненья - что, всё не так?
Дуга Михаил
Написал: ClaList(2)