C# 在WPF应用程序中读取cookie

C# 在WPF应用程序中读取cookie,c#,.net,wpf,rest,cookies,C#,.net,Wpf,Rest,Cookies,在wpf应用程序中,我必须调用一个外部rest服务,该服务返回一个包含会话id的cookie。在所有后续调用中,我必须在cookie中发送会话id,否则它不会返回任何数据 那么如何在wpf代码隐藏类中检索cookie呢 CookieContainer cookies = new CookieContainer(); HttpClientHandler handler = new HttpClientHandler(); handler.CookieContainer = cookies; Ht

在wpf应用程序中,我必须调用一个外部rest服务,该服务返回一个包含会话id的cookie。在所有后续调用中,我必须在cookie中发送会话id,否则它不会返回任何数据

那么如何在wpf代码隐藏类中检索cookie呢

CookieContainer cookies = new CookieContainer();
HttpClientHandler handler = new HttpClientHandler();
handler.CookieContainer = cookies;

HttpClient client = new HttpClient(handler);
var domain = EndPoint;
HttpResponseMessage response2 = client.PostAsync(domain, new StringContent(parameters)).Result;

Uri uri = new Uri(domain);
IEnumerable<Cookie> responseCookies = cookies.GetCookies(uri).Cast<Cookie>();
var cookieWithId = responseCookies.Single(o => o.Name == "JESSSIONID");
CookieContainer cookies=新的CookieContainer();
HttpClientHandler handler=新的HttpClientHandler();
handler.CookieContainer=cookies;
HttpClient=新的HttpClient(处理程序);
var域=端点;
HttpResponseMessageResponse2=client.PostAsync(域,新StringContent(参数)).Result;
Uri=新的Uri(域);
IEnumerable responseCookies=cookies.GetCookies(uri.Cast();
var cookieWithId=responseCookies.Single(o=>o.Name==“jessionid”);

端点有且参数有rest/login?username=usr&password=pwd

下面是一个如何从响应中读取cookie的示例

CookieContainer cookies = new CookieContainer();
HttpClientHandler handler = new HttpClientHandler();
handler.CookieContainer = cookies;

HttpClient client = new HttpClient(handler);
var domain = "http://yourServiceURL.com";
HttpResponseMessage response = client.GetAsync(domain).Result;

Uri uri = new Uri(domain);
IEnumerable<Cookie> responseCookies = cookies.GetCookies(uri).Cast<Cookie>();
var cookieWithId =  responseCookies.Single(o => o.Name == "SessionId");
CookieContainer cookies=新的CookieContainer();
HttpClientHandler handler=新的HttpClientHandler();
handler.CookieContainer=cookies;
HttpClient=新的HttpClient(处理程序);
变量域=”http://yourServiceURL.com";
HttpResponseMessage response=client.GetAsync(domain.Result);
Uri=新的Uri(域);
IEnumerable responseCookies=cookies.GetCookies(uri.Cast();
var cookieWithId=responseCookies.Single(o=>o.Name==“SessionId”);

检查此项:我尝试了此项,但未收到cookie。虽然我可以看到,当我从REST客户端(即邮递员)发出请求时,cookie被返回。也尝试了代码,但结果相同:(我在fiddler中检查了有cookie响应,但我的应用程序看不到it@Haris在第行
Uri=newuri(域)上放置断点;
然后在Visual Studio的“监视”窗口中检查
响应2
,我猜域名或cookie名称不正确。谢谢您的代码是正确的。我从未使用过httpclient类,因此无法从服务读取响应。