c# - 如何在 Nancy 中编写接受 JSON 的 post 方法以及如何从 C# 客户端调用它?

标签 c# rest mono nancy

我在 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 POSTMAN 来测试模块。如果我调用 http://192.168.1.4:8888/Categories,我可以在 "GetCategories()" 中获取断点 在 postman 中。 但是,如果我调用 http://192.168.1.4:8888/Catergories/categryName=test,我无法在 SetCategory() 中获得断点。 。我是 Nancy 的新手,不确定我的发帖方法是否正确。

谁能提供

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

我在他们的文档中找不到上面的简单示例。

注意

我正在使用自托管环境,我使用以下代码托管 nancy

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; }

}

最佳答案

如果您想使用 POSTMAN 发布 JSON,您应该添加具有 JSON 内容类型的 header ,如 docs说(第三段)。设置 postman :

  1. 将您的主机设置为 http://192.168.1.4:8888/Categories 并选择 POST
  2. 添加带有 Content-Typeapplication/json 的 header 作为 header 和值 分别。
  3. 设置raw 并设置JSON 为类型。
  4. 将此 { "CategoryName": "something"} 按原样放在下面的文本字段中。
  5. 点击“发送”。

关于c# - 如何在 Nancy 中编写接受 JSON 的 post 方法以及如何从 C# 客户端调用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32666862/

相关文章:

C#/Mac : Path. GetInvalidPathChars() 和 Path.GetInvalidFileNameChars() 结果

c# - 如何修改另一个窗口的背景颜色?

c# - 执行包含 GO 语句的批处理 T-SQL 脚本会抛出异常

c# - 如果条件满足,ParallelFor 不会立即取消所有线程

java - 如何从从 C# REST 服务检索到的 java 字符串中提取值

php - Laravel 5/流明请求 header ?

c# - NancyFX/Linux/Mono - 大型上传(超过 1MB)适用于 Windows 服务器,但不适用于 Linux

apache - 在 Mac OSX 10.9 "Mavericks"上安装 mod_mono

c# - 以逗号分隔数以千计 asp.net

javascript - 在 angularjs 中访问自定义 http 响应 header