我正在尝试创建一个网络应用程序,它将接收包含 json 的 HTTP 帖子。我现在想做的就是表明我可以接收请求。我首先使用 Web API 模板创建一个 ASP .NET Web 应用程序。我添加了一个 Controller 来接收帖子:
public class PostmanController : Controller
{
[System.Web.Mvc.HttpPost]
public void Index([FromBody] string request)
{
// Create handler class object
PostmanHandler test = new PostmanHandler();
// Pass request to the convertjsontoobject method
test.ConvertJsonToObject(request);
}
}
正如您在这里看到的,我还在 Models 文件夹中创建了一个处理程序:
public class PostmanHandler
{
public void ConvertJsonToObject(string s)
{
// Deserialize JSON
var newData = JsonConvert.DeserializeObject<testobject>(s);
}
}
将 JSON 转换为我创建的类:
public class testobject
{
public int id { get; set; }
public string name { get; set; }
}
我正在尝试对此进行测试以查看它是否有效,但是当我发送 POST 请求时,我从 Postman 收到了 404 响应。我将它发送到 http://localhost:xxxx/api/Postman我认为它遵循 WebApiConfig 文件中的路由,该文件指出:routeTemplate: "api/{controller}/{id}"
我是否遗漏了某种路由?
最佳答案
如果您真的使用 Web API(而不是 MVC),您的 Controller 应该是 ApiController(而不是 Controller)的子类。
更新:所以,您真的不需要自己处理 JSON 的反序列化。 Web API 会为你做到这一点。你的“请求”参数不应该是“字符串”类型,它实际上应该是你试图反序列化的类型
[HttpPost]
public void PostObject([FromBody]testobject request)
{
// Your request object should be deserialized already.
}
关于c# - ASP .NET Webhook 接收器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45065430/