c# - ASP .NET Webhook 接收器

标签 c# asp.net json asp.net-web-api

我正在尝试创建一个网络应用程序,它将接收包含 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/

相关文章:

c# - Databound CheckBoxList 中的第一项未显示

c# - asp.net core dbcontext 在计时器结束时被释放

php - 使用 file_get_contents 将 JSON 转换为 PHP 数组

.net - TypeConverter 适用于 Newtonsoft.Json,但不适用于 JsonConverter? (F#)

c# - Cosmos DB - 在 LINQ 中使用 ARRAY_CONTAINS

c# - 加载 XML 文档并在 TreeView 中显示它

c# - 在不同的 .NET 框架之间共享记录器

c# - 如何实现子类中必须覆盖的常量字段.net 4

asp.net - 在 IIS 中托管 Sageframe 网站时配置文件错误

javascript - 从 getJSON 查询获取 SharePoint Lookup 列的值