HttpClient存储多个cookie

时间:2018-08-31 02:50:57

标签: c# cookies httpclient

不能真正弄清楚该怎么做,而且我还没有真正找到任何帮助过的文章或主题。基本上,我试图登录到wordpress网站,问题是,POST后它发送了一个测试cookie,然后在2个不同的set-cookie中发送了auth cookie,它存储了初始客户端cookie和测试cookie,但是我可以t弄清楚如何获取第二个set-cookie来存储身份验证cookie。

var baseAddress = new Uri("https://www.gplvault.com/wp-admin");
var cookieContainer = new CookieContainer();
using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer, AllowAutoRedirect = false})
using (var client = new HttpClient(handler, false) { BaseAddress = baseAddress })
{
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36");
client.DefaultRequestHeaders.Add("Referer", "https://www.gplvault.com/my-account/");
client.DefaultRequestHeaders.Add("Connection", "keep-alive");
client.DefaultRequestHeaders.Add("Accept-Language", "en-US,en;q=0.5");
client.DefaultRequestHeaders.Add("Accept", "application/json, text/javascript, */*; q=0.01");

var homePageResult = client.GetAsync("/");
Console.WriteLine("1: " + cookieContainer.GetCookieHeader(baseAddress));
homePageResult.Result.EnsureSuccessStatusCode();
var content = new FormUrlEncodedContent(new[]{
    new KeyValuePair<string, string>("username", username),
    new KeyValuePair<string, string>("password", password),
});
var loginResult = client.PostAsync("/my-account/orders/", content).Result;

}

0 个答案:

没有答案