我使用的是asp.net核心web api。下面是我的简单post函数,它有一个字符串参数。问题是当我使用[FromBody]时,字符串保持为空。我正在使用PostMan来测试我的服务。我希望原始数据从客户端传递到我的控制器。在邮差我选择体型RAW和 我设置标题Content-Type text / plain。 Raw Body包含Just“Hello World”字符串。
[HttpPost]
[Route("hosted-services/tokenize-card")]
public IActionResult Test([FromRoute]decimal businessKey,[FromBody] string body)
{
var data = businessKey;
return new JsonResult("Hello World");
}
答案 0 :(得分:4)
赞the doc说:
当参数具有[FromBody]时,Web API使用Content-Type标头 选择格式化程序。
默认情况下,仅支持XML和JSON内容类型。因此,您需要使用application/xml
,application/json
或注册自定义IInputFormatter
。
接下来,您需要发送与所选内容类型匹配的内容。
对于json,如果参数为int
则发送一个数字。如果它是一个类,则发送一个json对象。如果它是一个字符串,则发送一个json字符串。等
int => 14
string => "azerty"
class => { "propName" : "value" }
Array => []
... => ...
在您的情况下,您应该发送application/json
内容类型和内容:
"Hello string"
而不仅仅是
Hello string
Aspnet core json input formatter implementation
答案 1 :(得分:0)