14

我正在尝试使用此代码从网站获取所有 cookie

        CookieContainer cookieJar = new CookieContainer();

        var request = (HttpWebRequest)HttpWebRequest.Create("http://www.foetex.dk/ugenstilbud/Pages/Zmags.aspx");
        request.CookieContainer = cookieJar;

        var response = request.GetResponse();

        foreach (Cookie c in cookieJar.GetCookies(request.RequestUri))
        {
            Console.WriteLine("Cookie['" + c.Name + "']: " + c.Value);
        }

        Console.ReadLine();

我唯一想要的是用console.writeline显示,但我没有得到一个。

4

3 回答 3

16
//Please use this,
HttpWebRequest request = null;
request = HttpWebRequest.Create(StringURL) as HttpWebRequest;                
HttpWebResponse TheRespone = (HttpWebResponse)request.GetResponse();
String setCookieHeader = TheRespone.Headers[HttpResponseHeader.SetCookie];
于 2015-06-26T09:52:11.630 回答
12

下面的示例使用 HttpCookie 类及其属性来读取具有特定名称的 cookie。

HttpCookie myCookie = new HttpCookie("MyTestCookie");
myCookie = Request.Cookies["MyTestCookie"];

// Read the cookie information and display it.
if (myCookie != null)
   Response.Write("<p>"+ myCookie.Name + "<p>"+ myCookie.Value);
else
   Response.Write("not found");

检索 HttpWebResponse 的HttpWebResponse.Cookies属性中的值。在此示例中,将检索 cookie 并将其保存到隔离存储中:

private void ReadCallback(IAsyncResult asynchronousResult)
{
    HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
    HttpWebResponse response = (HttpWebResponse)
        request.EndGetResponse(asynchronousResult);
    using (IsolatedStorageFile isf =
        IsolatedStorageFile.GetUserStoreForSite())
    {
        using (IsolatedStorageFileStream isfs = isf.OpenFile("CookieExCookies",
            FileMode.OpenOrCreate, FileAccess.Write))
        {
            using (StreamWriter sw = new StreamWriter(isfs))
            {
                foreach (Cookie cookieValue in response.Cookies)
                {
                    sw.WriteLine("Cookie: " + cookieValue.ToString());
                }
                sw.Close();
            }
        }

    }
}
于 2013-05-05T00:47:20.000 回答
2

要获取 cookie 列表,您可以使用以下方法;

private async Task<List<Cookie>> GetCookies(string url)
{
    var cookieContainer = new CookieContainer();
    var uri = new Uri(url);
    using (var httpClientHandler = new HttpClientHandler
    {
        CookieContainer = cookieContainer
    })
    {
        using (var httpClient = new HttpClient(httpClientHandler))
        {
            await httpClient.GetAsync(uri);
            return cookieContainer.GetCookies(uri).Cast<Cookie>().ToList();
        }
    }
}
于 2018-08-10T13:03:33.660 回答