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?
emissionMedlem sedan dec. 19996 721 inlägg 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.
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)
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