问题标签 [frombodyattribute]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
953 浏览

ios - POST Http 请求的正文部分为空

我正在使用AFNetworking框架将一些数据发送到.Net后端。我正在使用POST:parameters:success:failure:方法。

.net 后端正在使用该FromBody属性读取数据

但它接收它为空。我已经尝试过使用 PHP,我可以在$_POST对象中看到我的身体数据(虽然我看不到它$HTTP_RAW_POST_DATA)。可能是什么问题呢?

我发送的数据是 JSON 对象。

0 投票
5 回答
15590 浏览

json - 为什么我的 Web API 控制器操作没有反序列化子属性的子属性?

我正在将 PUT 请求中的 json 有效负载发送到 Web API 控制器操作。有问题的操作具有如下所示的签名:

SaveThingRequest 看起来像这样:

我在包含具有设置的元素的请求正文中发布 json。我已经通过在控制器操作中手动反序列化并确认 JSON 具有类似于以下内容的结构来确认这一点:

但是,当 .NET 反序列化有效负载并创建 SaveThingRequest 时,我的元素已填充,但它们都具有 null 设置属性。我不知道如何解决这个问题。有人对这里可能发生的事情有任何想法吗?

0 投票
1 回答
619 浏览

c# - WebApi post 方法中的参数绑定

我无法在以下方法中将数据绑定到 locationModel 参数。我查看了其他帖子,但似乎没有解决方案有效:

我通过 fiddler 以下列方式调用该方法:

在此处输入图像描述

该方法在执行发布请求时调用,但 LocationModel 为空。这是 LocationModel 的定义:

我究竟做错了什么?

0 投票
0 回答
266 浏览

asp.net-apicontroller - WebApi POST 正文未与 FromBody 绑定

我已经像这样定义了我的 ApiController 的方法:

正在调用该方法,但 json 始终为空。我可以通过 Fiddler 看到我传递的是我所期望的(主机名显然已被删除)。我在这里想念什么?

POST http://somehost.com/api/somemethod HTTP/1.1
用户代理:提琴手
主机:somehost.com
内容长度:54
内容类型:application/json

{"site":"home","re​​gion":"region","flags":"flags"}

0 投票
0 回答
124 浏览

post - 在 WebApi POST 方法中使用 [From Body] 获取 NULL 参数

我在 WebApi 中使用 [FromBody]。当我向 POST 方法发送请求时,请求没有传递的正文参数。我在参数中收到 NULL,而且如果我检查请求对象,它在内容中没有参数。尝试使用提琴手和通过 WebRequest。当我删除 [FromBody] 标签时它起作用了,我使用 Request 对象 cpuld 读取它。有什么解释吗?

0 投票
2 回答
1070 浏览

asp.net-web-api - 在 webapi 控制器中接受应用程序/xml 内容

我想创建一个将接受应用程序/xml 内容的操作。

到目前为止,基本上我已经创建了这个。

当我发布以下内容时

我最终得到了这个回应

我尝试删除FromBody属性,但这也无济于事。由于某种原因,内容不绑定到现有模型。

0 投票
1 回答
870 浏览

asp.net-web-api - 在 Web API 应用程序中响应 HTTP Post 调用时,我应该使用“[FromBody]”值还是自定义参数?

POST 是否是正确的 HTTP 方法/动词,用于告诉服务器使用哪个标准来检索数据然后将其保存在本地?

我想从客户端(Windows 窗体)应用程序/实用程序发送一个 URL 到我的 Web API 应用程序,告诉它通过存储过程检索数据,然后将结果存储在本地表中。没有数据返回给调用者,它只是做一些工作的通知。

为此,我向 WebApiConfig 添加了一条新路由:

在 Controller 中,此方法已经存在(已自动添加):

...但我不知道我是否想要“[FromBody]”爵士乐,所以我添加了这个:

这是正确/更好的方法吗,还是最好将 URL args 从“[FromBody]”中提取出来?事实上,POST 甚至是用于这类事情的正确 HTTP 动词吗?

0 投票
4 回答
12736 浏览

c# - 如何通过 FromBody 将 DataTable 传递给 Web API POST 方法(C#)

我正在从 Winforms 客户端成功调用 Web API 应用程序中的 POST 方法,该客户端为存储过程传递一些参数。

不过,如果可能的话,我更愿意通过 FromBody 功能将存储过程的结果(我必须首先在客户端上运行)传递给 POST 方法。

通过网络发送大量数据,但我现在这样做的方式是我必须运行 SP 两次 - 首先在客户端 Winforms 应用程序上,然后在 Web API 服务器应用程序上,并同时调用此 SP似乎有时会引起一些问题。

因此,如果可行,我想通过“FromBody”发送 DataTable,或者如果更可取,发送数据的 XML 化或 json 化版本(然后在另一端解压,将其转换为 html 以进行检索当调用相应的 GET 方法时。

有没有人有任何可以显示的代码?

可以在这里看到我现有的仅通过参数的代码。

更新

好的,根据 Amit Kumar Ghosh 的回答,我将代码更改为:

WebApiConfig.cs

控制器

客户

...但仍未到达控制器;具体来说,“DataTable dt = dtPassedAsJson;”中的断点 永远达不到。

实际上,它没有崩溃,这让我感到惊讶,因为正在传递一个字符串,但那里声明的数据类型是“DataTable”

更新 2

我也试过这个,在意识到它不是我从客户端传递的真正的字符串化/jsonized DataTable,而是一个字符串化/jsonized 通用列表之后:

网页 API 控制器

WebApiConfig.cs

我将此添加到 Register 方法中:

...和这个新课程:

尽管如此,Controller 中的主要断点行还是:

...未达到。

0 投票
2 回答
2011 浏览

c# - 如何将中等数量的数据传递到我的 Web API 应用程序?

我在 Web API 控制器中有这段代码:

通过“[FromBody]”参数仅从客户端(Winforms 应用程序)传递一点(人为的)数据时,它可以正常工作,如下所示:

但是,如果我将分配的注释反转为 dataAsJson 以便它发送真实数据,如下所示:

...它失败; 没有错误消息;使用 JsonConvert.SerializeObject() 方法将 DataTable (_dtUsage) 序列化为 json 就好了;只是有“很多”数据(几千条记录)。客户端对 PostAsync() 的调用永远不会到达,因此服务器的 Post 方法永远不会到达。

是否有一种解决方法可以在发送不仅仅是微不足道的数据时成功?我真的不喜欢通过网络传递那么多数据(当前客户端和服务器都在本地运行,但考虑部署后的情况),但另一个选择是从两个客户端执行相同的存储过程(到在那里生成 Excel 电子表格文件)和从服务器(将数据转换为 HTML)。这似乎是那些“Catch-22”情况之一(“如果我这样做就被扣押,如果我不这样做就被隔离”)。

更新

测试 user3093073 的想法,我将其添加到 Web.config 的 system.webServer 部分:

(基于我在这里找到的,但它仍然无法正常工作......

更新 2

更接近用户 user3093073 的答案,我也试过这个:

……也无济于事。

更新 3

请注意,我将上面的代码放在站点的每个 Web.config 文件中,即:

...或者,查看其位置的另一种方式:

更新 4

在离开这个几天并回到它之后,现在对我来说似乎很清楚,我试图传递的“真实”数据与假冒/测试数据不同,后者有效。

测试数据是一个简单的 KeyValuePair 的集合。然而,真实数据更为复杂。因此,当我尝试将复杂的数据转换为简单的 KeyValuePair 时,肯定会遇到麻烦。所以代替这个:

...我需要这样的东西:

...但这也不起作用;我收到几个编译错误,例如“ 'System.Collections.Generic.List' 不包含采用 2 个参数的构造函数

如果我删除第一个参数,它是:

...我得到其他编译错误,例如,“ Argument 1: cannot convert from 'string' to 'int'

0 投票
1 回答
833 浏览

java - 正文中的 Http PUT:错误请求错误,无法解析 API 令牌

我在解析和发送请求时遇到了很大的麻烦。在请求正文中,我必须发送一个我在认证时已经成功获得的令牌。这是一个文档:

PUT /api/ver1/orders {“令牌”:字符串,“订单”:对象}

以下是我解析和获取 JSONObject 的方法:

这是 Httpput 请求

另一个变体是当我使用 com.loopj.android.http.AsyncHttpClient 时。我没有其他的 get、patch 和 post请求,除了PUT之外一切都正常工作。这是我得到的代码:

这是 entuty/jsonObject 字符串:

{"token":"b695911b-2973-11e6-acac-06b720391567","order":{"order_type":"1","payment_type":"2","name":"Какой-то груз","成本":"350","描述":"","从":{"纬度":"55.15919993700593","经度":"65.15919993700593"},"fromPeriod":{"date":"1464944049","从":"15","to":"18"},"to":{"city":"Челябинск","address":"Ленина, 3, 3"},"toPeriod":{"date" :"1464944075","from":"15","to":"18:30"},"sender":{"name":"Попов","comment":"Попов","电话":["+70000009111"]},"收件人":{"姓名":"Иванов Иван Иваныч","comment":"Иванов Иван Иваныч","电话":["70000009112"]},"货物" :[{"name":"wwww","description":"wwww","size":{"height":"2","width":"3","length":"4"}," loaders_count":"1","does_need_pa​​ckaging":false}]}}"宽度":"3","长度":"4"},"loaders_count":"1","does_need_pa​​ckaging":false}]}}"宽度":"3","长度":"4"},"loaders_count":"1","does_need_pa​​ckaging":false}]}}

我不是 Rest 和 httprequest 方面的专业人士,所以我不知道问题出在哪里,并且在第一个 put 方法中仍然有一个异常:

{"name":"Bad Request","message":"No API token found","code":0,"status":400,"type":"yii\web\HttpException"}

如果有人有想法请帮助我!