无法在HttpFormUrlEncodedContent上设置标题

我正在使用Windows.Web.Http.HttpClient.SendRequestAsync并将HttpFormUrlEncodedContent与一些自定义标题一起发布。

当试图:

HttpClient httpClient = new HttpClient();

IList<KeyValuePair<string, string>> requestData = new List<KeyValuePair<string, string>>();
requestData.Add(new KeyValuePair<string, string>("form", "content"));
HttpFormUrlEncodedContent request = new HttpFormUrlEncodedContent(requestData);

request.Headers.TryAppendWithoutValidation("Custom", "Header");

我得到例外:

WinRT信息:错误的标题名称。 确保请求头与HttpRequestMessage一起使用,使用HttpResponseMessage响应头以及使用HttpContent对象的内容头。

我如何添加每个请求自定义头与HttpFormUrlEncodedContent?

请注意,虽然我知道HttpClient.DefaultRequestHeaders,但它不是一个选项,因为我想重用HttpClient实例。


所以你实际上不能将标题设置为内容本身。 事实证明,你需要在HttpRequestMessage中包装HttpFormUrlEncodedContent,然后像下面这样设置头部到HttpRequestMessage对象:

HttpFormUrlEncodedContent content = new HttpFormUrlEncodedContent(requestData);
HttpRequestMessage req = new HttpRequestMessage(HttpMethod.Post, ServiceUri);
req.Content = content;
req.Headers.Add("Custom", "Header");
链接地址: http://www.djcxy.com/p/46255.html

上一篇: Cannot set Headers on HttpFormUrlEncodedContent

下一篇: Content Headers Remove fails for string Authorization