当前位置: 首页 > news >正文

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

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

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


本文内容

    • 简单的 ASP.NET Core 程序
    • 模拟 GET 请求
    • 下载安装 Postman
    • 模拟 POST 请求
    • 模拟 PUT / PATCH / DELETE / … 请求
    • 关于本文调试的 ASP.NET 程序 Rssman

简单的 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。相关数据模型类的定义可以看这里:

  • RssFeedItem.cs
  • RssFeedContext.cs

以上程序如果在 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 浏览器访问
▲ Chrome 浏览器访问

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

IE 浏览器访问
▲ IE 浏览器访问

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

下载安装 Postman

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

选择你需要的平台
▲ 选择你需要的平台

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

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

在这里插入图片描述
▲ 关闭 SSL 证书验证

模拟 POST 请求

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

创建一个 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/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

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

相关文章:

  • 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式)
  • UWP 中的各种文件路径(用户、缓存、漫游、安装……)
  • 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇)
  • 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇)
  • csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的?
  • C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议
  • WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object)
  • 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键
  • 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件)
  • 在 Visual Studio Code 中添加自定义的代码片段
  • 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限
  • 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能
  • git 如何更可靠地解决冲突?
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶
  • CAP理论的例子讲解
  • CentOS 7 防火墙操作
  • Cookie 在前端中的实践
  • IDEA 插件开发入门教程
  • JavaScript 基础知识 - 入门篇(一)
  • java小心机(3)| 浅析finalize()
  • Netty源码解析1-Buffer
  • SQLServer之创建显式事务
  • 关于Java中分层中遇到的一些问题
  • 推荐一个React的管理后台框架
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 移动端高清、多屏适配方案
  • 整理一些计算机基础知识!
  • # Panda3d 碰撞检测系统介绍
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (SpringBoot)第二章:Spring创建和使用
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)ssm高校实验室 毕业设计 800008
  • (黑马C++)L06 重载与继承
  • (九)信息融合方式简介
  • (力扣)1314.矩阵区域和
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (一) storm的集群安装与配置
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .“空心村”成因分析及解决对策122344
  • .gitignore文件—git忽略文件
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .net项目IIS、VS 附加进程调试
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • ;号自动换行
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @SuppressWarnings注解