HttpRequestMessage 报错
Misused header name. Make sure request headers are used with HttpRequestMessage,
response headers with HttpResponseMessage, and content headers with HttpContent objects.
这个错误通常是因为你在 HttpRequestMessage.Headers 中设置了无效的请求头。例如,一些头(如 Content-Type、Content-Length)应该设置在 HttpContent.Headers 上,而不是 HttpRequestMessage.Headers。
解决方案:
请检查你设置请求头的代码,确保 Content-Type 等内容相关的头是设置在 HttpContent 上,而不是 HttpRequestMessage.Headers。
错误示例
var request = new HttpRequestMessage(HttpMethod.Post, "https://example.com/api");
request.Headers.Add("Content-Type", "application/json"); // ❌ 错误,Content-Type 属于 HttpContent.Headers
正确示例
var request = new HttpRequestMessage(HttpMethod.Post, "https://example.com/api");
// 创建 HttpContent 并设置正确的 Content-Type 头
var content = new StringContent("{\"key\":\"value\"}", Encoding.UTF8, "application/json");
// 将内容赋值给 request
request.Content = content;
// 如果需要添加其他请求头
request.Headers.Add("Authorization", "Bearer your_token");
using var client = new HttpClient();
var response = await client.SendAsync(request);