来自CookieContainer
的Cookie不会添加到获取或发布请求中。其他头文件没有问题。什么是添加cookie的正确方法?我以前做过这个没有问题,但我找不到这里的错误。C#HttpClient不会添加来自CookieContainer的Cookie以请求
var cookieContainer = new CookieContainer();
var handler = new HttpClientHandler();
handler.AllowAutoRedirect = true;
handler.UseCookies = true;
handler.CookieContainer = cookieContainer;
var baseAddress = new Uri("https://www.example.se");
cookieContainer.Add(baseAddress, new Cookie("Testing", "Test"));
//This did not work either
//cookieContainer.Add(baseAddress, new Cookie("Testing", "Test", "/"));
using (var client = new HttpClient(new LoggingHandler(handler)))
{
client.BaseAddress = baseAddress;
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36");
client.DefaultRequestHeaders.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
client.DefaultRequestHeaders.Add("Accept-Language", "sv-SE,sv;q=0.8,en-US;q=0.6,en;q=0.4");
var getResponse = client.GetAsync("/test").Result;
string responseString = getResponse.Content.ReadAsStringAsync().Result;
}
LoggingHandler:使用CookieContainer
当 https://stackoverflow.com/a/18925296/3850405
您可以尝试Cookie ctor重载,该重载也接受路径作为第三个参数,然后将“/ test”添加为路径,然后重试以查看是否确实呈现了预期结果。如果有效,我们可以回头让它工作在你最初希望的状态, – rene