ASP .NET Webhook Receiver



我正在尝试创建一个将接收包含json的HTTP帖子的Web应用程序。我现在要做的就是表明我可以收到请求。我首先使用 Web API 模板创建了一个 ASP .NET Web 应用程序。我添加了一个控制器来接收帖子:

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 请求时,我收到了邮递员的 404 响应。我把它发送到 http://localhost:xxxx/api/Postman,我认为它遵循 WebApiConfig 文件中的路由,该文件指出:routeTemplate:"api/{controller}/{id}">

我是否遗漏了某种路由?

如果你真的在使用 Web API(而不是 MVC(,你的控制器应该是 ApiController 的子类(而不是 Controller(。

更新:所以,你真的不需要自己处理JSON的反序列化。Web API 将为您做到这一点。您的"request"参数不应属于"字符串"类型,它实际上应该是您尝试反序列化为的类型

[HttpPost]
public void PostObject([FromBody]testobject request)
{
// Your request object should be deserialized already.
}

取出 URL 中的 API 并尝试 http://localhost:xxxx/Postman。您的控制器 PostmanController 不是 Web API(派生自控制器而不是 ApiController 类(,因此在这种情况下/api/{controller}/{id} 的路由模板不正确。

最新更新