---
title: "WinForm + WebRequest."
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/163054-winform-webrequest"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Fredde Mannen"
published: "2007-07-31T08:54:39.000Z"
updated: "2007-07-31T11:59:41.000Z"
replies: 3
views: 507
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/163054-winform-webrequest"
---

# WinForm + WebRequest.

## #1 — Fredde Mannen, 2007-07-31T08:54Z

Har satt ihop följande 

```

        Dim postData As String
        postData = "fnamn=" + fnamn.Text
        postData &= "&enamn=" + enamn.Text
        postData &= "&pwd=" + pwd.Text

        Dim data() As Byte = Encoding.ASCII.GetBytes(postData)

        ' Prepare web request...
        Dim myRequest As WebRequest = WebRequest.Create("http://www.grjj.se/site/do_login.asp")
        myRequest.Method = "POST"
        myRequest.ContentType = "application/x-www-form-urlencoded"
        myRequest.ContentLength = data.Length
        Dim newStream As Stream = myRequest.GetRequestStream()

        ' Send the data.
        newStream.Write(data, 0, data.Length)
        newStream.Close()

        ' fetch the data.
        Dim loWebResponse As WebResponse = myRequest.GetResponse()
        Dim loResponseStream As StreamReader = New StreamReader(loWebResponse.GetResponseStream())
        Dim lcHtml As String = loResponseStream.ReadToEnd()

        Dim uri As Uri = New Uri("http://www.grjj.se/site/medlemmar/")
        Form2.Visible = True
        Form2.WebBrowser1.Url = uri
```

Visst jag lyckas kontakta sidan, men den verkar inte skicka informationen på rätt sätt, eller så, för jag får alltid inloggningsfel.

Vad är det som saknas?

Permalänk: https://www.webforum.nu/p/163054

## #2 — emission, 2007-07-31T10:15Z

Värdena i postData måste url-kodas (med System.Web.HttpUtility.UrlEncode)

Om du loggar in med en WebRequest så kommer du inte att vara inloggad i en WebBrowser. De är ju olika webbläsare.

Permalänk: https://www.webforum.nu/p/2010585

## #3 — Fredde Mannen, 2007-07-31T11:08Z

> **emission skrev:**
>
> Värdena i postData måste url-kodas (med System.Web.HttpUtility.UrlEncode)
> 
> Om du loggar in med en WebRequest så kommer du inte att vara inloggad i en WebBrowser. De är ju olika webbläsare.

 Hur skulle du föreslå att man går tillväga då, att genom en WindowForm kunna göra inloggningen till sidan och därefter öppna "siten" i en WinForm (med kontrollen webbrowser då givetvis)

Permalänk: https://www.webforum.nu/p/2010596

## #4 — Fredde Mannen, 2007-07-31T11:59Z

Hehe.. missa ju dels att hämta kakan och plus lite andra saker.. :P

Så nu funkar det som jag vill.. (har dock inte prövat med ny browser än).

```
        Dim postData As String
        postData = "fnamn=" + System.Web.HttpUtility.UrlEncode(fnamn.Text)
        postData &= "&enamn=" + System.Web.HttpUtility.UrlEncode(enamn.Text)
        postData &= "&pwd=" + System.Web.HttpUtility.UrlEncode(pwd.Text)

        ' Prepare web request...
        Dim myRequest As HttpWebRequest = HttpWebRequest.Create("http://www.grjj.se/site/do_login.asp")
        Dim CookieC As New Net.CookieContainer

        With myRequest
            .Method = "POST"
            .ContentType = "application/x-www-form-urlencoded"
            .KeepAlive = False
            .AllowAutoRedirect = False
            .CookieContainer = CookieC

        End With

        Dim enc As System.Text.Encoding = System.Text.Encoding.UTF8
        Dim bPostBuffer As Byte() = enc.GetBytes(postData)
        myRequest.ContentLength = bPostBuffer.Length
        Dim newStream As Stream = myRequest.GetRequestStream()

        ' Send the data.
        newStream.Write(bPostBuffer, 0, bPostBuffer.Length)
        newStream.Close()

        Dim myResponse As HttpWebResponse = CType(myRequest.GetResponse(), HttpWebResponse)
        CookieC.Add(myResponse.Cookies)

        myRequest = WebRequest.Create("http://www.grjj.se/site/medlemmar/")
        With myRequest
            .KeepAlive = False
            .Method = "GET"
            .ContentType = "application/x-www-form-urlencoded"
            .AllowAutoRedirect = True
            .CookieContainer = CookieC
        End With

        myResponse = myRequest.GetResponse()
        Dim sReader As StreamReader = New StreamReader(myResponse.GetResponseStream)
        Dim HTML As String = sReader.ReadToEnd
```

Permalänk: https://www.webforum.nu/p/2010603

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/163054-winform-webrequest
