2010-02-08 5 views
0

J'ai recherché un code VB.Net pour m'authentifier sur un serveur web avec la méthode POST, recevoir un identifiant de session dans un cookie, puis envoyer ce cookie avec toutes les requêtes GET ... mais tout ce que j'ai trouvé est code à mi-travail ou code C#, ie. difficile à utiliser pour un débutant VB.Net.Exemple de code pour le cookie POST +?

Quelqu'un aurait-il du code à portée de la main ou un pointeur que je pourrais utiliser pour commencer?

Merci.

Répondre

0

Pour ceux qui souhaitent faire quelques screen scraping, voici un code de travail pour signaler un login/mot de passe, obtenir un identifiant de session dans un cookie, et GET autres pages du site:

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