【问题标题】:Making restful calls to asp.net web api对 asp.net web api 进行安静的调用
【发布时间】:2014-05-21 02:24:06
【问题描述】:

我目前正在按照本教程使用 Web Api 创建一个简单的 REST 服务。请注意,这是我第一次做这样的事情,我只是想了解更多。

http://www.asp.net/web-api/overview/creating-web-apis/creating-a-web-api-that-supports-crud-operations

我已按照所有说明进行操作,并在我的本地主机上成功运行。我知道在本教程中,我所有 GET 请求的 URI 都类似于:

localhostapi/products/id

我了解这一点,以及如何在 URI 中执行简单的 GET 请求,并在浏览器中使用我的开发人员工具查看它实际发生的情况。

现在我的问题是......我如何发出 POST/DELETE/PUT 请求并实际查看它们在做什么?指南不太清楚,我是否将参数传递到 URI 中?当我想要除 GET 请求之外的任何内容时,URI 是否会更改?这里的文字似乎解释了它,但我不明白:

  • 该方法采用 Product 类型的参数。在 Web API 中,复杂类型的参数从请求体中反序列化。因此,我们希望客户端以 XML 或 JSON 格式发送产品对象的序列化表示。

【问题讨论】:

    标签: c# rest asp.net-web-api


    【解决方案1】:

    发出 POST、PUT、DELETE 请求非常容易。你只需要在http://www.telerik.com/download/fiddler安装Fiddler

    接下来,安装并运行它。转到右侧的 Composer 选项卡。接下来,把你的本地主机URL,以及请求方法,和其他数据像下面的截图

    【讨论】:

      【解决方案2】:

      你可以编写单元测试,比如

          [TestMethod]
          public void GetAllProducts_ShouldReturnAllProducts()
          {
              var testProducts = GetTestProducts();
              var controller = new SimpleProductController(testProducts);
      
              var result = controller.GetAllProducts() as List<Product>;
              Assert.AreEqual(testProducts.Count, result.Count);
          }
      

      这个linkThis one 可能会有所帮助。

      更多:

      How to call ASP .NET MVC WebAPI 2 method properly

      Sending C# object to webapi controller

      【讨论】:

        【解决方案3】:

        您可以在处理 post/delete/put 的控制器方法上设置断点。

        在您调用 post/delete/put 时在浏览器中出现同样的情况(可能是在 jquery 请求中)


        您还可以对控制器方法进行单元测试: http://www.asp.net/mvc/tutorials/older-versions/unit-testing/creating-unit-tests-for-asp-net-mvc-applications-cs

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-01-27
          • 1970-01-01
          • 2013-11-16
          • 2017-07-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-09
          相关资源
          最近更新 更多