Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Aggiungere a questa classe i cookie
Forum - C# / VB.NET - [VB.NET] Aggiungere a questa classe i cookie

Avatar
seven.7 (Normal User)
Rookie


Messaggi: 30
Iscritto: 24/12/2006

Segnala al moderatore
Postato alle 8:02
Domenica, 15/04/2007
Salve... di seguito vi riporto una classe in vb.net per il modulo post e get... vorrei inserire il settaggio dei cookie, consigli? grazie mille!

Codice sorgente - presumibilmente VB.NET

  1. [CODE]
  2. Imports System
  3. Imports System.Collections.Generic
  4. Imports System.Collections.Specialized
  5. Imports System.IO
  6. Imports System.Net
  7. Imports System.Text
  8. Imports System.Web
  9.  
  10.  
  11. ''' <summary>
  12. ''' Esegue un modulo HTTP (Form HTML) in modalitÓ POST e GET.
  13. ''' </summary>
  14. Public Class HttpPost
  15.  
  16.  
  17.     ''' <summary>
  18.     ''' ModalitÓ di esecuzione del modulo.
  19.     ''' </summary>
  20.     Public Enum PostTypes
  21.         ''' <summary>
  22.         ''' HTTP GET.
  23.         ''' </summary>
  24.         [GET]
  25.         ''' <summary>
  26.         ''' HTTP POST.
  27.         ''' </summary>
  28.         POST
  29.     End Enum
  30.  
  31.     ' OGGETTI PRIVATI
  32.     Private _url As String
  33.     Private _values As NameValueCollection
  34.     Private _type As PostTypes
  35.     Private _encoding As Encoding
  36.  
  37.  
  38.     ''' <summary>
  39.     ''' Esegue un modulo HTTP (Form HTML) in modalitÓ POST e GET.
  40.     ''' </summary>
  41.     Public Sub New()
  42.         ' init default
  43.         Me._url = String.Empty
  44.         Me._type = PostTypes.[GET]
  45.         Me._values = New NameValueCollection()
  46.         Me._encoding = Text.Encoding.UTF8
  47.     End Sub
  48.  
  49.  
  50.     ''' <summary>
  51.     ''' Esegue un modulo in modalitÓ POST e GET.
  52.     ''' </summary>
  53.     ''' <param name="url">URL del modulo da eseguire.</param>
  54.     Public Sub New(ByVal url As String)
  55.         Me.New()
  56.         Me._url = url
  57.     End Sub
  58.  
  59.  
  60.     ''' <summary>
  61.     ''' Esegue un modulo in modalitÓ POST e GET.
  62.     ''' </summary>
  63.     ''' <param name="url">URL del modulo da eseguire.</param>
  64.     ''' <param name="values">Collezione dei valori del modulo.</param>
  65.     Public Sub New(ByVal url As String, ByVal values As NameValueCollection)
  66.         Me.New(url)
  67.         Me._values = values
  68.     End Sub
  69.  
  70.  
  71.     ''' <summary>
  72.     ''' Esegue un modulo in modalitÓ POST e GET.
  73.     ''' </summary>
  74.     ''' <param name="url">URL del modulo da eseguire.</param>
  75.     ''' <param name="values">Collezione dei valori del modulo.</param>
  76.     ''' <param name="encoding">Codifica del set di caratteri.</param>
  77.     Public Sub New(ByVal url As String, ByVal values As NameValueCollection, ByVal encoding As Encoding)
  78.         Me.New(url, values)
  79.         Me._encoding = encoding
  80.     End Sub
  81.  
  82.  
  83.     ''' <summary>
  84.     ''' Legge o imposta la URL del modulo da eseguire.
  85.     ''' </summary>
  86.     Public Property Url() As String
  87.         Get
  88.             Return (Me._url)
  89.         End Get
  90.         Set(ByVal value As String)
  91.             Me._url = value
  92.         End Set
  93.     End Property
  94.  
  95.  
  96.     ''' <summary>
  97.     ''' Legge o imposta la collezione dei valori del modulo.
  98.     ''' </summary>
  99.     Public Property Values() As NameValueCollection
  100.         Get
  101.             Return (Me._values)
  102.         End Get
  103.         Set(ByVal value As NameValueCollection)
  104.             Me._values = value
  105.         End Set
  106.     End Property
  107.  
  108.  
  109.     ''' <summary>
  110.     ''' Legge o imposta la modalitÓ di esecuzione del modulo.
  111.     ''' </summary>
  112.     Public Property Type() As PostTypes
  113.         Get
  114.             Return (Me._type)
  115.         End Get
  116.         Set(ByVal value As PostTypes)
  117.             Me._type = value
  118.         End Set
  119.     End Property
  120.  
  121.  
  122.     ''' <summary>
  123.     ''' Legge o imposta il tipo di codifica del set di caratteri.
  124.     ''' </summary>
  125.     Public Property Encoding() As Encoding
  126.         Get
  127.             Return (Me._encoding)
  128.         End Get
  129.         Set(ByVal value As Encoding)
  130.             Me._encoding = value
  131.         End Set
  132.     End Property
  133.  
  134.  
  135.     ''' <summary>
  136.     ''' Esegue il modulo HTTP.
  137.     ''' </summary>
  138.     ''' <returns>String, codice HTML restituito dall'esecuzione del modulo.</returns>
  139.     Public Function Post() As String
  140.         Dim parameters As New StringBuilder()
  141.         For i As Integer = 0 To Me._values.Count - 1
  142.             Me.AddItem(parameters, Me._values.GetKey(i), Me._values(i))
  143.         Next
  144.         Return (PostData(Me._url, parameters.ToString(), Text.Encoding.UTF8))
  145.     End Function
  146.  
  147.  
  148.     ''' <summary>
  149.     ''' Esegue il modulo HTTP.
  150.     ''' </summary>
  151.     ''' <param name="url">URL del modulo da eseguire.</param>
  152.     ''' <returns>String, codice HTML restituito dall'esecuzione del modulo.</returns>
  153.     Public Function Post(ByVal url As String) As String
  154.         Me._url = url
  155.         Return (Me.Post())
  156.     End Function
  157.  
  158.  
  159.     ''' <summary>
  160.     ''' Esegue il modulo HTTP.
  161.     ''' </summary>
  162.     ''' <param name="url">URL del modulo da eseguire.</param>
  163.     ''' <param name="values">Collezione dei valori del modulo.</param>
  164.     ''' <returns>String, codice HTML restituito dall'esecuzione del modulo.</returns>
  165.     Public Function Post(ByVal url As String, ByVal values As NameValueCollection) As String
  166.         Me._url = url
  167.         Me._values = values
  168.         Return (Me.Post())
  169.     End Function
  170.  
  171.  
  172.     ''' <summary>
  173.     ''' Esegue il modulo HTTP.
  174.     ''' </summary>
  175.     ''' <param name="postDatas">Valori del modulo, in formato UrlEncoded.</param>
  176.     ''' <param name="url">URL del modulo da eseguire.</param>
  177.     ''' <param name="encoding">Codifica del set di caratteri.</param>
  178.     ''' <returns>String, codice HTML restituito dall'esecuzione del modulo.</returns>
  179.     Private Function PostData(ByVal url As String, ByVal postDatas As String, ByVal encoding As System.Text.Encoding) As String
  180.  
  181.         Dim uri As Uri
  182.         Dim request As HttpWebRequest = Nothing
  183.  
  184.         Select Case Me._type
  185.             Case PostTypes.POST
  186.                 uri = New Uri(url)
  187.                 request = DirectCast(WebRequest.Create(uri), HttpWebRequest)
  188.                 request.Method = "POST"
  189.                 request.ContentType = "application/x-www-form-urlencoded"
  190.                 request.ContentLength = postDatas.Length
  191.                 Using writeStream As Stream = request.GetRequestStream()
  192.                     Dim bytes As Byte() = encoding.GetBytes(postDatas)
  193.                     writeStream.Write(bytes, 0, bytes.Length)
  194.                 End Using
  195.                 Exit Select
  196.             Case PostTypes.[GET]
  197.                 uri = New Uri(url + "?" + postDatas)
  198.                 request = DirectCast(WebRequest.Create(uri), HttpWebRequest)
  199.                 request.Method = "GET"
  200.                 Exit Select
  201.         End Select
  202.         Dim ret As String = String.Empty
  203.         Using response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
  204.             Using responseStream As Stream = response.GetResponseStream()
  205.                 Using readStream As New StreamReader(responseStream, encoding)
  206.                     ret = readStream.ReadToEnd()
  207.                 End Using
  208.             End Using
  209.         End Using
  210.         Return ret
  211.     End Function
  212.  
  213.  
  214.     ''' <summary>
  215.     ''' Codifica i parametri e li concatena in una stringa formattata per l'esecuzione del modulo.
  216.     ''' </summary>
  217.     ''' <param name="baseRequest">Stringa formattata contenente i parameteri codificati in precedenza.</param>
  218.     ''' <param name="dataItem">Valore da codificare.</param>
  219.     Private Sub AddItem(ByRef baseRequest As StringBuilder, ByVal key As String, ByVal dataItem As String)
  220.         If baseRequest Is Nothing Then
  221.             baseRequest = New StringBuilder()
  222.         End If
  223.         baseRequest.Append((IIf((baseRequest.Length <> 0), "&", String.Empty)) + key + "=" + HttpUtility.UrlEncode(dataItem))
  224.     End Sub
  225.  
  226. End Class
  227. [/CODE]





PM Quote
Avatar
AnyWay (Ex-Member)
Rookie


Messaggi: 25
Iscritto: 05/02/2007

Segnala al moderatore
Postato alle 16:49
Domenica, 15/04/2007
Io userei un CookieContainer, per˛ con il codice VB non so aiutarti, quindi prova a vedere qui:
Codice sorgente - presumibilmente Plain Text

  1. http://www.devspy.com/forums/thread/5473.aspx


PM Quote