这可能是非常基本的东西,但我很难弄清楚我哪里出错了。
我试图从帖子正文中获取一个字符串,但“jsonString”只显示为null。我还想避免使用模型,但这可能是不可能的。我与PostMan接触到的一段代码是:
[Route("Edit/Test")]
[HttpPost]
public void Test(int id, [FromBody] string jsonString)
{
...
}
也许这是我在postman上做得不正确的地方,但我一直在尝试在body-x-www-form-urlencoded部分的值部分使用“=test”(如在有关此主题的其他问题中看到的),键为jsonString,没有任何内容。我还尝试使用原始文本和原始文本/普通。我得到了id,所以我知道url是正确的。对此的任何帮助都将不胜感激。
邮递员目前的设置如下:
POST http://localhost:8000/Edit/Test?id=111
key = id value = 111
Body - x-www-form-urlencoded
key = jsonString value = "=test"
当拥有
"test"
基于https://weblog.west-wind.com/posts/2017/Sep/14/Accepting-Raw-Request-Body-Content-in-ASPNET-Core-API-Controllers
在asp中使用FromBody时,类似的答案字符串值为空。net web api
正在ASP中引用参数绑定。NET Web API
使用[FromBody]
要强制Web API从请求正文中读取简单类型,请将[FromBody]属性添加到参数中:
[Route("Edit/Test")]
[HttpPost]
public IHttpActionResult Test(int id, [FromBody] string jsonString) { ... }
在此示例中,Web API将使用媒体类型格式化程序从请求正文中读取jsonString的值。这是一个示例客户端请求。
POST http://localhost:8000/Edit/Test?id=111 HTTP/1.1
User-Agent: Fiddler
Host: localhost:8000
Content-Type: application/json
Content-Length: 6
"test"
当参数具有[FromBody]时,Web API使用Content-Type标头来选择格式化程序。在此示例中,内容类型为“Application/json”,请求正文是原始JSON字符串(不是JSON对象)。
在上述示例中,如果数据在正文中以正确的格式提供,则不需要模型。
对于URL编码的请求,如下所示
POST http://localhost:8000/Edit/Test?id=111 HTTP/1.1
User-Agent: Fiddler
Host: localhost:8000
Content-Type: application/x-www-form-urlencoded
Content-Length: 5
=test
通过使用[FromBody]
声明jsonString参数,您告诉ASP. NET Core使用输入格式化程序将提供的JSON(或XML)绑定到模型。因此,如果您提供一个简单的模型类,您的测试应该可以工作
public class MyModel
{
public string Key {get; set;}
}
[Route("Edit/Test")]
[HttpPost]
public void Test(int id, [FromBody] MyModel model)
{
... model.Key....
}
和一个类似JSON的
{
key: "value"
}
当然,您可以跳过模型绑定并通过访问HttpContext直接检索提供的数据。控制器中的请求
。HttpContext. Request. body
属性为您提供内容流,或者您可以通过HttpContext. Request. Forms
访问表单数据。
我个人更喜欢模型绑定,因为类型安全。
问题内容: 我有一个关于JAXB的简单问题。这是示例代码: 如何初始化使用其他对象的String的输入元素? 问题答案: 您可以直接创建一个实例,或者如果您是从XML模式生成的Java模型,请在生成的类上使用convience方法。 schema.xsd 上面的演示代码基于从以下XML模式生成的Java模型。你会得到一个原因摆在首位属性是当你有一个既是元素和。 根 以下类是从中生成的,并且包含与您
说明 调用方法: $.f2e.util.json2query(json); 函数说明: json转字符串参数 参数说明: 参数名 类型 说明 备注 json object json格式数据 无 脚本 <script> var a = {a:1,b:2,c:3} $.f2e.util.json2query(a) //输出:a=1&b=2&c=3 </script>
问题内容: 我想发送一个字符串作为ajax Post参数。 如下代码: 不管用。为什么? 问题答案: 尝试这样:
红线位于“打开导航抽屉”和“关闭导航抽屉”下 这张图片显示了这个问题
问题内容: 我在使用Python线程并在参数中发送字符串时遇到问题。 。 其中dRecieved是连接读取的一行的字符串。它调用了一个简单的函数,到目前为止,该函数仅具有打印“ hello”的一项工作。 但是我收到以下错误 232是我尝试传递的字符串的长度,因此我猜想它会将其分解成每个字符并尝试传递类似的参数。如果我只是正常调用该函数,它将很好用,但是我真的想将其设置为单独的线程。 问题答案: 您
我从客户端发送了以下查询字符串参数 在REST服务器中,我如何接收上述格式并正确分配给每个类别? 更新1 参数的值为 {_=[1437904506062],{“take”:75,“skip”:0,“page”:1,“pageSize”:75、“filter”:{“logic”:“and”,“filters”:〔{“field”:“prodCode”,“operator”:“eq”,“value”: