2025-03-22

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);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容