PDA

View Full Version : [VB2005] HttpWebRequest con metodo POST, ma i cookies?


wingman87
26-10-2007, 01:01
Ho bisogno di fare un programmino che effettua il login su alcuni siti, l'idea sarebbe di fare il login col programmino e poi con firefox visitarli senza dover effettuare il login. La cosa facile è che il tipo di siti su cui mi devo loggare sono tutti dello stesso tipo e sono riuscito quindi dopo varie peripezie a scrivere qualcosa di funzionante, ecco il codice:
Imports System.Web
Imports System.Net
Imports System.IO
Imports System.Text

Public Class frmMain
Private Sub cmdLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdLogin.Click
Dim uri As Uri
Dim request As HttpWebRequest
Dim postData As String
uri = New Uri(txtUrl.Text)
request = WebRequest.Create(uri)
request.Method = "POST"
request.ContentType = "application/x-www-form-urlencoded"
postData = "username=" + txtUser.Text + "&password=" + txtPass.Text + "&autologin=1"
request.ContentLength = postData.Length
Dim writeStream As System.IO.Stream
writeStream = request.GetRequestStream()
Dim bytes() As Byte
Dim enc As Encoding
enc = Encoding.UTF8
bytes = enc.GetBytes(postData)
writeStream.Write(bytes, 0, bytes.Length)

Dim ret As String
ret = String.Empty
Dim response As HttpWebResponse
response = request.GetResponse()
Dim responseStream As Stream
responseStream = response.GetResponseStream()
Dim readStream As StreamReader = New StreamReader(responseStream, enc)
ret = readStream.ReadToEnd()
txtRet.Text = ret
End Sub
End Class
Praticamente c'è un form con dei textbox x specificare il sito su cui fare il login, la username e la password, poi c'è il bottone x avviare il tutto e un grosso textbox x vedere la risposta.
Vedendo la risposta vedo che il programma funziona, solo che quando poi lo visito con IE o con Firefox mi chiede di nuovo di effettuare il login e credo sia perchè non ho salvato i cookies, ma come si fa a salvare i cookies?
Grazie!

wingman87
26-10-2007, 23:24
up
Se non si capisce bene quello che chiedo ditemelo pure.

wingman87
28-10-2007, 02:00
Sigh, perchè nessuno risponde? :cry: