WebClient的cookie
来源:互联网 发布:手机淘宝换货流程 编辑:程序博客网 时间:2024/06/04 17:45
由于WebClient没有保存cookie的功能,需要包装下
private class CookieAwareWebClient : WebClient { public CookieAwareWebClient() : this(new CookieContainer()) { } public CookieAwareWebClient(CookieContainer c) { this.CookieContainer = c; } public CookieContainer CookieContainer { get; set; } protected override WebRequest GetWebRequest(Uri address) { WebRequest request = base.GetWebRequest(address); if (request is HttpWebRequest) { (request as HttpWebRequest).CookieContainer = this.CookieContainer; } return request; } }
使用例子如下:
CookieAwareWebClient
myWebClient = new(CookieContainer)
myWebClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); NameValueCollection myQueryStringCollection = new NameValueCollection(); myQueryStringCollection.Add("authenticity_token", Controller.HttpLoader.getToken()); myWebClient.QueryString = myQueryStringCollection; myWebClient.UploadFileAsync(new Uri(uriString), "POST", "test.txt"); myWebClient.UploadFileCompleted += new UploadFileCompletedEventHandler(wc_UploadFileCompleted);