我希望VB.net WebClient能够记住cookie.
我已经搜索并尝试了许多重载类.
我想通过POST登录到一个网站,然后POST到另一个页面并获取其内容,同时仍保留我的会话.
这是否可以使用VB.net而不使用WebBrowser控件?
我尝试过Chilkat.HTTP并且它可以工作,但我想使用.Net库.
Chr*_*aas 46
创建一个新的类继承自存储CookieContainer的WebClient,如@Guffa所说.这是我使用的代码,它也可以让referer保持活力:
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
Run Code Online (Sandbox Code Playgroud)
这是上面代码的C#版本:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27865 次 |
| 最近记录: |