HttpWebRequest, веб-браузер и куки?(Visual Basic 2010) - PullRequest
0 голосов
/ 26 августа 2011

Я пишу программу для моей сестры для игры, в которую она играет онлайн.Он использует элемент управления WebBrowser и HttpWebRequest.

Основная функция - поиск по сайту, мы скажем, что URL-адрес http://hersite.com/pet/* (не переходите по ссылке, простопример) где * это число, и вот как он ищет.Я использую цикл for для циклического преобразования чисел от указанного начала до конца и использую httpwebrequest для извлечения html-кода, затем обрабатываю строку, используя InStr и .split ()

Когда я получаю доступ к веб-странице с помощьюWebRequest.Navigate, он выводит меня на страницу правильно.Однако, если я получаю источник через HttpWebRequest, он выбирает источник страницы входа, на которую веб-сайт перенаправляет вас, если вы не вошли в систему.

Есть ли способ передачи файлов cookie из веб-браузерана мой HttpWebRequest?

Надеюсь, это понятно.

Некоторые примеры:

Получите где-нибудь HTML, мне нужно добавить cookie в запросчик http, не так ли?t I?

Функция GetHTML (ByVal strPage As String) As String Dim strReply As String = "NULL"

    Try
    Dim objHttpRequest As System.Net.HttpWebRequest
    Dim objHttpResponse As System.Net.HttpWebResponse
    Dim uri As New Uri(strPage)

    objHttpRequest = System.Net.HttpWebRequest.Create(strPage)


    objHttpResponse = objHttpRequest.GetResponse
    Dim objStrmReader As New StreamReader(objHttpResponse.GetResponseStream)

    strReply = objStrmReader.ReadToEnd()

    Catch ex As Exception
    strReply = "ERROR! " + ex.Message.ToString
     End Try

    Return strReply

End Function

Ответы [ 2 ]

0 голосов
/ 30 августа 2011

Итак, вы пытаетесь разделить файлы cookie между элементом управления WebBrowser и объектом HttpWebRequest?Первые фактически используют файлы cookie системы (технически Internet Explorer), и поэтому доступ к ним может представлять угрозу безопасности.Тем не менее, есть способ.Проверьте этот пост .Он находится в C #, но вы сможете легко конвертировать его в VB.Вы увидите один P / Invoke, чтобы получить доступ к безопасным куки.В конечном итоге вы просто переносите строку из одной программы в другую, вам просто нужно убедиться, что она правильно отформатирована.

0 голосов
/ 26 августа 2011

что вы спрашиваете, как получить или установить куки в вашем запросе http?

Что ж, если вопрос задан, вы можете сделать это:

objHttpRequest.Headers["Cookie"] = "baa";

, но еслипоследнее:

Используйте tcpdump или Wireshark или какой-либо другой подобный инструмент для захвата сетевого трафика и просмотра того, что именно код go отправляет на сервер и что сервер возвращает в ответ.Сделайте http запрос на странице входа в систему -> отправив логин и пароль (например), если вы добились успеха, сервер вернул куки в заголовках ответа.отделите файл cookie метки от ответа и укажите в своем запросе http, как указано выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...