本文介绍了HttpClient的不节能饼干的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我现在用新的HttpClient来处理我的项目的网上冲浪需求;不过,虽然正确设置,HttpClient的不饼干保存到Cookie的容器,它始终是空的。



代码



 私人的CookieContainer _cookieContainer =新的CookieContainer(); 
私人的HttpClient HttpClient的{搞定;组; }
私人HttpClientHandler HttpClientHandler {搞定;组; }

公共初始化()
{
HttpClientHandler =新HttpClientHandler
{
AllowAutoRedirect = TRUE,
UseCookies = TRUE,
=的CookieContainer _cookieContainer
};
HttpClient的=新的HttpClient(HttpClientHandler);
}

公众的CookieContainer饼干
{
{返回_cookieContainer; }
集合{_cookieContainer =价值; }
}

公共无效TEST()
{
//这是总是空的,但我相信,该网站是节省登录的Cookie
VAR饼干饼干=;
}


解决方案

奇怪...你有没有试图直接使用HttpClientHandler的的CookieContainer



代码:

 公开初始化()
{
HttpClientHandler =新HttpClientHandler
{
AllowAutoRedirect = TRUE,
UseCookies = TRUE,
的CookieContainer =新的CookieContainer()
};
HttpClient的=新的HttpClient(HttpClientHandler);
}

公众的CookieContainer饼干
{
{返回HttpClientHandler.CookieContainer; }
集合{HttpClientHandler.CookieContainer =价值; }
}


I am using the new HttpClient to handle my project's web surfing needs; However, although correctly set, the HttpClient does not save the cookies to the Cookie container and it is always EMPTY.

Code

private CookieContainer _cookieContainer = new CookieContainer();
private HttpClient HttpClient { get; set; }
private HttpClientHandler HttpClientHandler { get; set; }

public Initialize()
{
    HttpClientHandler = new HttpClientHandler
                            {
                                AllowAutoRedirect = true,
                                UseCookies = true,
                                CookieContainer = _cookieContainer
                            };
    HttpClient = new HttpClient(HttpClientHandler);
}

public CookieContainer Cookies
{
    get { return _cookieContainer; }
    set { _cookieContainer = value; }
}

public void TEST()
{
    //This is always empty, although I am sure that the site is saving login cookies
    var cookies = Cookies;
}
解决方案

Weird... Did you tried to directly use the HttpClientHandler's CookieContainer ?

Code :

public Initialize()
{
    HttpClientHandler = new HttpClientHandler
                            {
                                AllowAutoRedirect = true,
                                UseCookies = true,
                                CookieContainer = new CookieContainer()
                            };
    HttpClient = new HttpClient(HttpClientHandler);
}

public CookieContainer Cookies
{
    get { return HttpClientHandler.CookieContainer; }
    set { HttpClientHandler.CookieContainer = value; }
}

这篇关于HttpClient的不节能饼干的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-14 16:38