2009-12-12 4 views
1

Я пытаюсь опубликовать некоторые данные и получить некоторые данные с веб-сайта. Сайт не предоставляет никаких веб-сервисов или API, и у меня нет способа изменить сайт. Единственный вариант - очистка экрана HTML. Чтобы опубликовать данные, мне сначала нужно войти в систему, получить файл cookie на другой странице, получить еще один файл cookie и перейти на последнюю страницу, чтобы опубликовать данные. Мне не нужен какой-либо html с первых двух страниц, но для получения последнего сообщения нужны куки-файлы. Я использую System.Net.HttpWebRequest для навигации по сайту. Можно ли получать только файлы cookie (заголовки сервера) без загрузки всей страницы? Прямо сейчас я использую метод GetReponse() для получения потока ответов.Есть ли способ получить куки, не читая всю страницу?

+0

HEAD похож на GET, но без получения HTML/полезной нагрузки ответа. AFAIK нет эквивалента POST. – dtb

ответ

3

Нет, если вы отправляете запрос POST. Вы можете получить только заголовки, отправив запрос HEAD, но тогда вы не сможете публиковать необходимые учетные данные.

0

Я думаю, что это зависит от сайта. Теоретически, если вы используете запрос HEAD, сайт должен отвечать заголовками, но без каких-либо данных, похоже, что вам нужно, на самом деле все зависит от фактического веб-сайта.

0

Вы должны (теоретически) уметь устанавливать Method на вашем HttpWebRequest до HEAD и получите только заголовки.

0

с win32 api вы можете прочитать только заголовок ответа и отказаться от соединения после. Посмотрите на wininet.

Что касается предиката HEAD, он может работать в некоторых ситуациях, в то время как в других он не будет. Некоторые страницы фактически проверяют предикат и принимают меры на основе этого.