Пример кода для POST + cookie? - PullRequest
       11

Пример кода для POST + cookie?

0 голосов
/ 08 февраля 2010

Я пытался найти какой-нибудь код VB.Net для аутентификации на веб-сервере методом POST, получить идентификатор сеанса в файле cookie, а затем отправить этот файл cookie вместе со всеми запросами GET ... но все, что я нашел является наполовину рабочим кодом или кодом C #, т.е. трудно использовать для новичка VB.Net.

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

Спасибо.

1 Ответ

0 голосов
/ 09 февраля 2010

Для тех, кто заинтересован в некоторой очистке экрана, вот несколько рабочих кодов, чтобы ПОСТАВИТЬ логин / пароль, получить идентификатор сеанса в куки и получить другие страницы с сайта:

Imports System.Net
Imports System.IO
Imports System.Text

Public Class Form1
    Const ConnectURL = "http://www.acme.com/logon.php"
    Const HomeURL = "http://www.acme.com"

    Private Function RegularPage(ByVal URL As String, ByVal CookieJar As CookieContainer) As String
        Dim reader As StreamReader

        Dim Request As HttpWebRequest = HttpWebRequest.Create(URL)
        Request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14"
        Request.AllowAutoRedirect = False
        Request.CookieContainer = CookieJar

        Dim Response As HttpWebResponse = Request.GetResponse()

        reader = New StreamReader(Response.GetResponseStream())
        Return reader.ReadToEnd()
        Response.Close()
    End Function

    Private Sub LogonPage(ByVal URL As String, ByRef CookieJar As CookieContainer, ByVal PostData As String)
        Dim reader As StreamReader

        Dim Request As HttpWebRequest = HttpWebRequest.Create(URL)

        Request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14"
        Request.CookieContainer = CookieJar
        Request.AllowAutoRedirect = False
        Request.ContentType = "application/x-www-form-urlencoded"
        PostData = "username=isiria&password=ceciestunmdp"
        Request.Method = "POST"
        Request.ContentLength = PostData.Length

        Dim requestStream As Stream = Request.GetRequestStream()
        Dim postBytes As Byte() = Encoding.ASCII.GetBytes(PostData)

        requestStream.Write(postBytes, 0, postBytes.Length)
        requestStream.Close()

        Dim Response As HttpWebResponse = Request.GetResponse()

        For Each tempCookie In Response.Cookies
            CookieJar.Add(tempCookie)
        Next

        reader = New StreamReader(Response.GetResponseStream())
        Response.Close()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim CookieJar As New CookieContainer
        Dim PostData As String

        Try
            'Logon
            PostData = "username=jdoe&password=test"
            LogonPage(ConnectURL, CookieJar, PostData)

            'Homepage
            RichTextBox1.AppendText(RegularPage(HomeURL, CookieJar))
        Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try
    End Sub
End Class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...