在 asp.net MVC 中设置整数标头值

Posted

技术标签:

【中文标题】在 asp.net MVC 中设置整数标头值【英文标题】:Set Integer header value in asp.net MVC 【发布时间】:2021-07-25 00:20:09 【问题描述】:

我想为 terminalId 设置一个 Int Header 值。

目前 HttpClient 标头仅采用 对。如何添加带有 的标题?

此 Web 服务接受 Int 作为 terminalId。

以下代码:

using (var client = new HttpClient())
            

                client.BaseAddress = new Uri("http://localhost:8678");
                var postview = new CitizenResult
                
                    cpartyUsername = "abc",
                    cpartyPassword = "123",
                ;
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Add("token", "d448f575db31a44e32e0a17f24bc947cdd4edb4a7db8729734c81b9e139286af36dd9c5e42793d494e0f7bd45b25e5f3b77472949f38bcdb3dfa2b8d1ef376848ec6ce65b9a7d7be343c5c1b59089082");
                client.DefaultRequestHeaders.Add("clientIPAddress", "178.173.147.4");
                client.DefaultRequestHeaders.Add("clientAgentInfo", "192.168.0.227");
                client.DefaultRequestHeaders.Add("terminalId", 123);
                int a = 190766;
                var postTask = client.PostAsJsonAsync<CitizenResult>("http://test", postview);
                postTask.Wait();
                var result = postTask.Result;
                if (result.IsSuccessStatusCode)
                
                    var x = result.Content.ReadAsAsync<SalamtResultViewModel>();
                    ViewBag.x = x;

                
                else
                
                    var x = result.Content.ReadAsAsync<badRequestResult>();
                    ViewBag.x = x;
                
            

【问题讨论】:

在放入header之前先将int转换为string,然后从header中读取后转换回int。 【参考方案1】:

当您添加整数时,只需调用 .toString() 方法。

client.DefaultRequestHeaders.Add("terminalId", 123.toString());   

client.DefaultRequestHeaders.Add("terminalId", a.toString());

这是因为可以将标头视为只是一个 JSON 对象,其中所有内容都存储在引号中,如下所示:


   "key":  "value"

所以您的条目将像这样存储

"terminalId": "123"

JSON 可以保存如下信息:

"terminalId": 123

但没有可用的重载。

【讨论】:

感谢您的关注,但网络服务接受 Int 作为 terminalId。 抱歉,您没有传递到 Web 服务。您正在传递给 System.Net.Http.Headers.HttpRequestHeaders 对象的属性,该属性必须有一个字符串。我认为您需要查找该名称空间以及强制转换是什么。我想你已经从某个地方复制了这段代码?您正在构建一个 JSON 请求,它不需要整数。你试图做的事情是不可能的。 TL;DR 传入“123”而不是 123

以上是关于在 asp.net MVC 中设置整数标头值的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 asp.net mvc 中的标记在 Select2 输入中设置默认值

在 Asp.Net MVC 中设置“主页”

在 asp .net CORE / MVC 6 应用程序中设置 Swagger 时出现 500 错误

在 asp.net mvc 中设置用户对每个应用程序的访问权限

检测地理位置 asp.net mvc - 托管在亚马逊 aws

在 ASP.NET MVC 项目中设置具有不同帐户和视图的多个公司的最佳实践