使用C#和ServiceStack返回HttpResult时无法在响应中看到自定义Header
解决自定义响应Header不显示的问题
嘿,我一眼就揪出你代码里的问题啦!你在定义自定义Header的键名时,错误地在末尾加了冒号:——这就是Postman里看不到这些Header的核心原因。
HTTP Header的键名本身是不需要带冒号的,冒号是协议里用来分隔键和值的符号,框架会自动帮你处理这个部分。你现在把冒号写到键名里,相当于告诉框架你的Header键是X-Count-Limit:(带冒号),这完全不符合HTTP规范,自然不会被正确解析和返回。
修正后的代码应该是这样的:
return new HttpResult($"Ping me, {request.ping}!") { StatusCode = HttpStatusCode.OK, ContentType = "text/plain;charset=utf-8", Headers = { ["X-Count-Limit"] = Counter.ToString(), ["X-Count-Remaining"] = number.Counter.ToString() } };
修改完成后,重新用Postman调用你的API,应该就能在响应头里看到X-Count-Limit和X-Count-Remaining这两个自定义Header啦!如果还是有问题,可以检查下你的HttpResult类的Headers属性是不是正确实现了响应头的添加逻辑,确保键值对能被正确传递到HTTP响应中。
内容的提问来源于stack exchange,提问作者CarlosCarlos
相关产品推荐
相关产品推荐

