C#HttpClient.SendAsync HttpMethod.Get - 如何使用其他值更新cookie

时间:2013-01-28 15:44:08

标签: c# http-headers asp.net-web-api dotnet-httpclient sendasync

我正在尝试使用C#HttpClient类发送带有cookie的Http Get消息。 HttpClient.GetAsync只接受网址。所以,我不能使用那种方法。 我发现HttpClient.SendAsync方法让我以下列方式发送cookie。

HttpRequestMessage GETRequest = new HttpRequestMessage(HttpMethod.Get, completeUrl);
GETRequest.Content = new FormUrlEncodedContent(formVals);
HttpResponseMessage GETResponse = client.SendAsync(GETRequest).Result;

但是在执行时,却没有说 -

  

“无法使用此动词类型发送内容正文”

我知道获取消息非常适合获取而不是发布数据。但在我的情况下,cookie存储在客户端以保存客户端首选项,我必须通过Http Get消息(通过HttpClient类)将它们发送到客户端。

我不想重新初始化HttpClient对象;这将改变其SessionID。 我不想在Get消息中添加内容。我只想问是否有任何其他方法可以使用其他值更新Get message cookie。

请告诉我如何处理这个问题。感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您应该使用CookieContainer类,如此answer所示。这将在HTTP标头中设置cookie(它们应放在哪里)。