我正在尝试使用 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。我不想向"获取消息"添加内容。我只是问是否有任何其他方法可以使用其他值更新获取消息cookie。
请告诉我如何处理这个问题。提前感谢您的帮助。
你应该使用 CookieContainer 类,就像这个答案所示。这将在 HTTP 标头中设置 cookie(它们应该放置的位置)。