vb.net - ejemplos - ¿Cómo puedo hacer que WebClient use cookies?
webclient downloaddata (2)
Cree una nueva clase que herede de WebClient que almacena el CookieContainer como dice @Guffa. Aquí está el código que utilizo que hace eso y también mantiene vivo al referente:
Public Class CookieAwareWebClient
Inherits WebClient
Private cc As New CookieContainer()
Private lastPage As String
Protected Overrides Function GetWebRequest(ByVal address As System.Uri) As System.Net.WebRequest
Dim R = MyBase.GetWebRequest(address)
If TypeOf R Is HttpWebRequest Then
With DirectCast(R, HttpWebRequest)
.CookieContainer = cc
If Not lastPage Is Nothing Then
.Referer = lastPage
End If
End With
End If
lastPage = address.ToString()
Return R
End Function
End Class
Aquí está la versión C # del código anterior:
using System.Net;
class CookieAwareWebClient : WebClient
{
private CookieContainer cc = new CookieContainer();
private string lastPage;
protected override WebRequest GetWebRequest(System.Uri address)
{
WebRequest R = base.GetWebRequest(address);
if (R is HttpWebRequest)
{
HttpWebRequest WR = (HttpWebRequest)R;
WR.CookieContainer = cc;
if (lastPage != null)
{
WR.Referer = lastPage;
}
}
lastPage = address.ToString();
return R;
}
}
Me gustaría que el WebClient de VB.net recuerde las cookies.
He buscado y probado numerosas clases de sobrecargas.
Quiero iniciar sesión en un sitio web a través de POST, luego POST a otra página y obtener su contenido mientras sigo reteniendo mi sesión.
¿Es esto posible con VB.net sin usar el control WebBrowser?
Probé Chilkat.HTTP y funciona, pero quiero usar bibliotecas .Net.
No puede hacer que la clase de WebClient recuerde las cookies, debe obtener el contenedor de cookies de la respuesta y utilizarlo en la siguiente solicitud.