【发布时间】:2017-04-12 16:47:47
【问题描述】:
这可能是非常基本的事情,但我无法弄清楚我哪里出错了。
我试图从 POST 正文中获取一个字符串,但“jsonString”只显示为空。我也想避免使用模型,但也许这是不可能的。我用 PostMan 打的代码就是这个块:
[Route("Edit/Test")]
[HttpPost]
public void Test(int id, [FromBody] string jsonString)
{
...
}
也许这是我对邮递员的错误处理,但我一直在尝试在正文的值部分使用“=test”(如有关此主题的其他问题中所见) - x-www-form- urlencoded 部分,键为 jsonString,什么都没有。我也尝试过使用 raw - text 和 raw - text/plain。我得到了 id,所以我知道 url 是正确的。对此的任何帮助将不胜感激。
PostMan 目前是这样设置的:
POST http://localhost:8000/Edit/Test?id=111
key = id value = 111
Body - x-www-form-urlencoded
key = jsonString value = "=test"
【问题讨论】:
-
能否提供完整的 http 请求,包括问题中的 URL 和正文。
-
至少
Request.Content.ReadAsStringAsync()应该可以工作。 -
我相信这是可能的。设置您的标题
Content-Type: application/x-www-form-urlencoded。正文应该是=test(没有别的)。 -
Asp.Net Core 相关问题stackoverflow.com/questions/31952002/…
-
我已经为此奋斗了两天,在阅读了我能找到的每一篇文章之后,结果证明它就像在 WebRequest 中正确格式化 JSON 字符串一样简单:数据必须开始并且以双引号结尾(即在 json 数据周围的数据字符串中添加双引号),然后如果您在整个 json 数据中使用单引号,一切都会很好。
标签: c# asp.net-web-api asp.net-web-api2 postman asp.net-web-api-routing