【发布时间】:2018-12-10 11:16:42
【问题描述】:
我有这个 LoansController 用于 web api
[Route("api/[controller]")]
[ApiController]
public class LoansController : ControllerBase
{
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "value1", "value2" };
}
// POST api/loans
[HttpPost]
public void Post([FromBody] string value)
{
}
}
在 PowerShell 中我可以调用
Invoke-WebRequest http://localhost:1113/api/loans -Body $postParams -Method Get
它工作正常(我得到value1 和value2)
但是当我尝试时
$postParams = "{'value':'123'}"
Invoke-WebRequest http://localhost:1113/api/loans -Body $postParams -Method Post # -ContentType 'Application/json'
我只是不断得到
Invoke-WebRequest : 远程服务器返回错误:(400) Bad Request。
我做错了什么?
我尝试添加-ContentType 'Application/json',但没有任何区别
我错过了什么?
我也尝试了Invoke-RestMethod,但结果相同..
接下来我从value 参数中删除了[FromBody],但value 现在以null 的形式出现
【问题讨论】:
-
发送实际的 JSON 字符串
$postParams = "\"123\""或创建一个与 json 匹配的模型并在操作中使用它。最后确保内容类型设置为正确的类型 -
获取请求没有正文
标签: powershell asp.net-web-api asp.net-core