2016-03-08 2 views
1

Я хочу автоматизировать процесс регистрации на веб-сайте.Вход на сайт с использованием C# HttpWebRequests, затем открытие в браузере

Процесс регистрации требует нескольких запросов для сбора файлов cookie и установки значений формы на основе этих файлов cookie. Используя несколько C# HttpWebRequests, я получил его, где последний HttpWebResponse возвращает данные, которые я хочу, указывая, что я успешно прошел аутентификацию.

Можно ли открыть этот сеанс в браузере, чтобы я вошел в систему, когда откроется страница? Я начинаю думать, что это не так, поскольку моя сессия привязана к файлу cookie JSESSIONID, и я не знаю, как это было вручную установить в браузере.

Спасибо.

+0

Firefox позволяет редактировать заголовки HTTP-запросов, поэтому технически вы можете вручную добавить значения cookie сеанса с помощью Firefox Dev Tools, а затем отправить отредактированный HTTP-запрос. Является ли ваше намерение просто экспериментировать с заголовками HTTP? –

+0

У меня есть HTTP-запросы, которые работают отлично. Я могу вернуть аутентифицированную страницу в свой HTTP-ответ (я могу видеть такие вещи, как мое имя пользователя и «Выйти» в потоке ответов). Я хочу, чтобы открыть эту аутентифицированную страницу в браузере, а не просматривать ее html в потоке HttpWebResponse. – downvoter24

+0

Затем вам нужно вручную добавить файлы cookie сеансов и т. Д. В HTTP-запрос вашего браузера. Я не верю, что вы можете сделать это прямо в коде, но вы можете использовать инструменты разработчика Firefox, чтобы справиться с этим довольно легко. Теоретически вы должны «захватить» сеанс, установленный вашим приложением C# таким образом. –

ответ

0

Чтобы дать ответ:

Cookies передаются на веб-серверов с помощью HTTP заголовка. Браузеры внутренне управляют куки-файлами, которые были настроены для домена, и отслеживают, когда добавлять файлы cookie в HTTP-запрос на основе домена, к которому осуществляется доступ. Последние версии популярных веб-браузеров, как правило, препятствуют вводу файлов cookie в свои собственные внутренние системы управления, если они не установлены надлежащим образом с помощью HTTP-ответа. Поэтому я не знаю, что вам не нравится, ваш код C# может напрямую установить cookie в вашем браузере.

Однако

Вы можете попробовать вручную добавлять куки сессии и т.д. на HTTP запрос браузера (это будет аккуратным эксперимент и должен реально работать). Вы можете использовать инструменты разработчика Firefox, чтобы сделать это довольно легко. Теоретически вы должны «захватить» сеанс, установленный вашим приложением C# таким образом.

Вы также можете просто вести сеанс через поток HttpWebResponse, но я, если вы не разрабатываете веб-браузер, будет непросто интерпретировать разметку визуально.