专栏首页walterlv - 吕毅的博客使用 Postman 调试 ASP.NET Core 开发的 API

使用 Postman 调试 ASP.NET Core 开发的 API

使用 ASP.NET Core 开发简单的后台 API 还是非常容易的。涉及到 GET 请求的调试我们可以用浏览器简单搞定,那么 POST/PUT/DELETE 这样的请求呢?

本文将使用 Postman 来调试这些请求。

简单的 ASP.NET Core 程序

如果你还不清楚如何编写一个 ASP.NET Core 程序,可以阅读 win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序 学习做一个最简单的版本。

我们的重点不是写一个 ASP.NET Core 程序,所以我只贴出最简单的路由地址的处理。

using Microsoft.AspNetCore.Mvc;
using Walterlv.WebApi.Rssman.Models;

namespace Walterlv.WebApi.Rssman.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class RssController : ControllerBase
    {
        private readonly RssFeedContext _context;

        public RssController(RssFeedContext context)
        {
        }

        // GET: api/Rss
        [HttpGet]
        public ActionResult<List<RssFeedItem>> Get()
        {
            // 省略实现。
        }

        // GET: api/Rss/5
        [HttpGet("{id}", Name = "Get")]
        public ActionResult<RssFeedItem> Get(long id)
        {
            // 省略实现。
        }

        // POST: api/Rss
        [HttpPost]
        public IActionResult Post([FromBody] RssFeedItem item)
        {
            // 省略实现。
        }

        // PUT: api/Rss/5
        [HttpPut("{id}")]
        public IActionResult Put(long id, [FromBody] RssFeedItem item)
        {
            // 省略实现。
        }

        // DELETE: api/ApiWithActions/5
        [HttpDelete("{id}")]
        public IActionResult Delete(long id)
        {
            // 省略实现。
        }
    }
}

以上代码是省略了所有实现的,完整的实现可以看这里:RssController。相关数据模型类的定义可以看这里:

以上程序如果在 Visual Studio 里进行调试,可以在本地搭建一个可访问的 Url。比如: https://localhost:44395/ 。

模拟 GET 请求

我们通过浏览器就可以模拟 GET 请求,比如我们在 Chrome / Microsoft Edge / Firefox 中访问 https://localhost:44395/api/rss 会在浏览器中显示结果的 json 字符串:

[
    {
        "id": 1,
        "name": "walterlv",
        "feedUrl": "https://blog.walterlv.com/feed.xml",
        "siteUrl": "https://blog.walterlv.com/"
    },
    {
        "id": 2,
        "name": "lindexi",
        "feedUrl": "https://blog.lindexi.com/feed.xml",
        "siteUrl": "https://blog.lindexi.com/"
    }
]

▲ Chrome 浏览器访问

当然,实际上浏览器访问时是没有这些空白字符的,这样可以节省带宽。特别的,Internet Explorer 在访问时会提示保存 rss.json 文件

▲ IE 浏览器访问

很明显不用去管被时代淘汰的 IE 浏览器。

下载安装 Postman

Postman 的下载地址在这里 https://www.getpostman.com/apps

▲ 选择你需要的平台

Postman 的安装是极简的,没有任何设置。当启动后,注册或登录你的个人账号,然后填写一些个性化设置即可。

如果你是本地 https 的调试,记得在 Postman 里关掉 SSL 证书验证,不然这种自己签署的证书是无法成功完成请求的。

▲ 关闭 SSL 证书验证

模拟 POST 请求

在 Postman 的主界面,创建一个 HTTP POST 请求只需要几个小步骤:

▲ 创建一个 POST 请求

“Send” 按钮点击后,我们便可以在右侧看到此请求的响应:

▲ 请求响应

注意,如果你看到的是下面这样的响应界面,记得回到前面的步骤去关闭 SSL 证书验证。

▲ 无法获取响应

如果你在 Visual Studio 中打了断点,那么现在应该已经进入了断点了:

▲ Visual Studio 中进入断点

于是你就能调试 POST 请求了。

模拟 PUT / PATCH / DELETE / … 请求

同样的,你也可以用 Postman 模拟其他种类的 HTTP 请求。

▲ 模拟其他请求

关于本文调试的 ASP.NET 程序 Rssman

Rssman 是用来管理 RSS 订阅的 ASP.NET 程序,目前正在开发中。

本文会经常更新,请阅读原文: https://blog.walterlv.com/post/use-postman-to-debug-asp-net-core-api.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 (walter.lv@qq.com)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core

    很多库都会在 nuget.org 上发布预览版本,不过一般来说这个预览版本也是大多可用的。然而想要体验日构建版本,这个就没有了,毕竟要照顾绝大...

    walterlv
  • 长期支持 LTS(Long-term Support)是怎样的一种支持方式

    发布于 2018-07-04 21:29 更新于 2018-12...

    walterlv
  • .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472)

    发布于 2018-05-28 08:23 更新于 2018-07...

    walterlv
  • 猝不及防!这次,Google真的“造人”了!5月编程语言指数榜:Python首次夺冠;Riot.js 3.10.0发布

    程序员宝库
  • 单细胞数据拟时序分析-destiny

    单细胞数据分析常用到建立trajectory和pseudoTime,拟时序分析可以用 Diffusion( Destiny R package)

    生信编程日常
  • Java后端面试经验总结分享(一)

    跟大部分公司类似,先做一份笔试题,题目都比较简单,基本都写完了。我把题目以及答案列在下面一下,给自己做一下总结的,也分享给一些需要的小伙伴,下面答案是我根据网上...

    朱季谦
  • CSS3-border-radius的兼容写法大全

    xing.org1^
  • javascript 树状结构的转换(递归)

    其中 props {id:'',label:'',children:[]}是不能项elementui中可以自己传入自己定义key值,

    天天_哥
  • Appium+python自动化21-DesiredCapabilities详解

    前言 Appium Desired Capabilities里面配置的参数还是蛮多的,android和ios的又有很多不一样地方,另外还能起到浏览器,做wap的...

    上海-悠悠
  • 亿航赴美上市 “无人机第一股”首日收盘持平

    12月12日,被称为是“无人机第一股” 无人机制造商企业亿航智能(以下简称亿航)正式于美国纳斯达克挂牌上市,股票代码为“EH” ,总计发行320万股美国存托股(...

    AiTechYun

扫码关注云+社区

领取腾讯云代金券