如何在Nancy中编写一个接受JSON的post方法,以及如何在c#客户端中调用它

本文关键字:方法 post 客户端 调用 Nancy 一个 JSON | 更新日期: 2023-09-27 18:13:22

我在Nancy中编写了以下模块

    public class CategoryModule : NancyModule
{
    public CategoryModule()
    {
        //At this moment just Show Hello world
        Get["/"] = _ => { return "Nancy says hello!"; };
        //Get["/"] = parameters => "Hello World!";
        GetCategories();
        SetCategory();
    }

     void GetCategories()
    {
        Get["/Catergories"] = _ =>
        {
            var catergoryRepository = new CategoryRepository();
            var categorycollection = catergoryRepository.GetCategoryInfo();
            return Negotiate.WithStatusCode(HttpStatusCode.OK).WithModel(categorycollection.ToArray());
        };
    }
     void SetCategory()
     {
         Post["/Catergories/{categryName:string}"] = _ =>
         {
             var catergoryModel = this.Bind<Category>();
             catergoryModel.PK_CategoryId = Guid.NewGuid();
             catergoryModel.CategoryName = _;
             return HttpStatusCode.OK;
         };
     }
}

我使用chrome邮差来测试模块。我可以得到断点在"GetCategories()如果我调用http://192.168.1.4:8888/Categories在邮差。但我不能得到断点在SetCategory()如果我调用http://192.168.1.4:8888/Catergories/categryName=test。我是Nancy的新手,不确定我的发帖方法是否正确。

谁能提供

  1. 一个接受Jason作为参数的Post方法示例一个从客户端调用它的例子

我在他们的文档中找不到一个简单的例子。

注意

我正在使用自托管环境,我在这里托管南希与以下代码

var server = new Nancy.Hosting.Self.NancyHost(new Uri("http://192.168.1.4:8888"));

下面是类别模型

    public class Category
{
    public Guid PK_CategoryId { get; set; }
    public string CategoryName { get; set; }
}

如何在Nancy中编写一个接受JSON的post方法,以及如何在c#客户端中调用它

如果你想用POSTMAN发布JSON,你应该添加JSON内容类型的标题,正如文档所说(第三段)。设置邮差:

  1. 设置您的主机为http://192.168.1.4:8888/Categories,选择POST
  2. 添加以Content-Typeapplication/json为头和值的头分别。
  3. 设置raw,设置JSON为type
  4. { "CategoryName": "something" }放到下面的文本框中。
  5. 点击"发送"。