我搜索并阅读了很多文章,看起来这应该有效。我可能错过了一些明显的东西,但我对MVC和ASP.NET没有经验(但是!)。
这是我的控制器操作,非常简单,只是测试输入(Respond是我的控制器类中的一个方法,用于创建带有状态代码和正文的响应):
public IHttpActionResult GetConnectionBroker()
{
return Respond(HttpStatusCode.BadRequest, "Broker information is missing or incomplete (1)");
}
public IHttpActionResult PostConnectionBroker()
{
return Respond(HttpStatusCode.BadRequest, "Broker information is missing or incomplete (2)");
}
public IHttpActionResult GetConnectionBroker(string host, string username, string password)
{
if (null == host || "" == host ||
null == username || "" == username ||
null == password || "" == password)
{
return Respond(HttpStatusCode.BadRequest, "Broker information is missing or incomplete (3)");
}
return Respond(HttpStatusCode.OK, "Yep, I see them!");
}
以下是JSON,我将其作为POST发送给app / json用于内容类型(我使用JSON和REST API进行了大量工作,包括创建和使用,但不在ASP.NET框架内MVC,所以可能有一些我不了解框架的东西?):
{
"host" : "10.110.44.157",
"username" : "jen",
"password" : "jen"
}
(请不要喋喋不休地谈论纯文本密码 - 我只是在这里做POC并且还没有添加安全层)。 POST的结果是:
{
"message": "Broker information is missing or incomplete (2)"
}
为什么它没有看到JSON请求有效负载并将其映射到具有匹配输入的操作?
(仅供参考,因为IP地址位于防火墙/ NAT之后,因此您将无法对其进行测试。)