You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单个HTTP头中传入多值?C#客户端与服务端解析问询

解决方法

如果你想让服务端的StringValues解析出多个独立值,不需要用分隔符拼接字符串,直接在客户端给同一个请求头添加多个值即可,有两种常用方式:

客户端代码示例

方式1:多次调用Add方法

var c = new HttpClient();
c.DefaultRequestHeaders.Add("X-MyHeader", "123");
c.DefaultRequestHeaders.Add("X-MyHeader", "abc");

方式2:传入字符串集合

var c = new HttpClient();
c.DefaultRequestHeaders.Add("X-MyHeader", new[] { "123", "abc" });

服务端验证

服务端代码保持不变:

var Vals = Request.Headers["X-MyHeader"];

此时Vals会是包含两个元素的StringValues,分别为"123"和"abc"。

为什么之前的分隔符无效?

当你把多个值用逗号、分号等拼接成单个字符串传入Add方法时,HttpClient会将其作为单个头字段值发送到服务端,ASP.NET Core默认不会自动拆分这类拼接字符串为多个StringValues元素,所以你拿到的只会是完整的拼接字符串。

内容的提问来源于stack exchange,提问作者s k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 05:07:12