我已使用此代码
WebClient webClient = new WebClient();
byte[] reqHTML;
reqHTML = webClient.DownloadData(url);
执行网址。在这里我有一个问题,在使用此代码时,是否设置了cookie?
答案 0 :(得分:1)
默认情况下,不会使用WebClient发送Cookie。您可以编写使用cookie container的实现:
public class CookieAwareWebClient : WebClient
{
private CookieContainer _container = new CookieContainer();
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
if (request is HttpWebRequest)
((HttpWebRequest)request).CookieContainer = _container;
return request;
}
}
答案 1 :(得分:0)
如果您指的是正在执行的ASP.NET页面中的Cookie,则表示否:我非常确定WebClient
根本不会看 当前正在执行的Web请求。
如果你想要这个功能,你可以从浏览器中使用AJAX吗?也许通过jQuery?这应该按照标准浏览器规则流动上下文等。
或者,您将不得不自己处理cookie(即将它们复制到WebClient
,如果需要,则将其复制)。