首页 > 编程语言 >C# WebApi传参及Postman调试

C# WebApi传参及Postman调试

时间:2024-01-18 14:11:26浏览次数:32  
标签:WebApi set Postman get C# res test public string

概述

欢迎来到本文,本篇文章将会探讨C# WebApi中传递参数的方法。在WebApi中,参数传递是一个非常重要的概念,因为它使得我们能够从客户端获取数据,并将数据传递到服务器端进行处理。WebApi是一种使用HTTP协议进行通信的RESTful服务,它可以通过各种方式传递参数。在本文中,我们只会针对Get和Post讨论参数传递的方法,以及如何在C# WebApi中正确地处理它们。

Get

GET请求方法用于获取资源,通常会将参数放在URL的查询字符串中进行传递。由于GET请求方法是无状态的,因此它通常被用于获取数据,而不是修改数据。

// 该函数用于向服务器发送GET请求并获取数据
export function getAction(url, query) {
  return request({
    url: url,
    method: 'get',
    params: query
  })
}

1.传递字符串参数

// 前端代码
handleTest() {
      getAction('/test/list1', { id: 1 }).then((res) => {
        console.log('res=', res)
      })
    },
// 后端代码
[Route("test")]
public class TestController : ControllerBase
{
    [HttpGet("list1")]
    public IActionResult Index(int id)
    {
        return Ok(id);
    }
}

附上Postman调用截图

2.传递实体参数

注意:.Net Core 项目中使用[FromQuery]特性,在.Net Framework 项目中使用[FromUri]特性

// 前端代码
handleTest() {
      getAction('/test/getPerson', { Name: 'Hpf', Age: '29', Sex: '男' }).then((res) => {
        console.log('res=', res)
      })
    },
//后端代码
[Route("test")]
public class TestController : BaseController
{
 [HttpGet("getPerson")]
 public IActionResult GetPerson([FromQuery] Person person)
 {
  return Ok();
 }
}


public class Person
{
 public string Name { get; set; }
 public string Age { get; set; }
 public string Sex { get; set; }
}

附上Postman调用截图

Post

POST请求方法用于向服务器端提交数据,通常会将参数放在请求体中进行传递。POST请求方法通常被用于创建、更新或删除资源。

// 该函数用于向服务器发送POST请求并获取数据
export function postAction(url, data) {
  return request({
    url: url,
    method: 'post',
    data: data
  })
}

1.传递实体参数

// 前端代码
handleTest() {
      postAction('/test/postPerson', { Name: 'Hpf', Age: '29', Sex: '男' }).then((res) => {
        console.log('res=', res)
      })
    },
// 后端代码
[Route("test")]
public class TestController : BaseController
{
 [HttpPost("postPerson")]
 public IActionResult PostPerson([FromBody] Person person)
 {
  return Ok();
 }
}


public class Person
{
 public string Name { get; set; }
 public string Age { get; set; }
 public string Sex { get; set; }
}

附上Postman调用截图

2.传递实体集合参数

// 前端代码
handleTest() {
      let list = [
        { Name: 'Hpf', Age: '29', Sex: '男' },
        { Name: 'Zzr', Age: '26', Sex: '女' },
      ]
      postAction('/test/postPerson', list).then((res) => {
        console.log('res=', res)
      })
    },
// 后端代码
[Route("test")]
public class TestController : BaseController
{
 [HttpPost("postPerson")]
 public IActionResult PostPerson([FromBody] List<Person> person)
 {
  return Ok();
 }
}


public class Person
{
 public string Name { get; set; }
 public string Age { get; set; }
 public string Sex { get; set; }
}

附上Postman调用截图

3.传递数组参数

// 前端代码
handleTest() {
      postAction('/test/postPerson',  ['1', '2', '3']).then((res) => {
        console.log('res=', res)
      })
    },
// 后端代码
[Route("test")]
public class TestController : BaseController
{
 [HttpPost("postPerson")]
 public IActionResult PostPerson([FromBody] string[] str)
 {
  return Ok();
 }
}

附上Postman调用截图

标签:WebApi,set,Postman,get,C#,res,test,public,string
From: https://www.cnblogs.com/DotNeter-Hpf/p/17972392

相关文章

  • appscan的使用
    Appscan的使用一、Appscan(web安全漏洞扫描)Appscan支持SQL注入(SQL-injection)、跨站点脚本攻击(cross-sitescripting)、缓冲区溢出(bufferoverflow)及最新的Flash/Flex应用及Web2.0应用曝露等方面安全漏洞的扫描。能够提供详细的漏洞公告和修复建议。二、工作原理通过搜索(爬......
  • RedisLock的AOP实现
    AOP的使用:1.标注@Aspect,说明此类是切面类。可以先用@Pointcut定义一个表达式。然后在@Around中引用这个@Pointcut的方法。更常见的是直接在Around里面定义。@Around("@annotation(注解的位置)")@anootation:注解带有xxx的。@args:参数带有xxx的。@within/@target:标识生效的具体类......
  • C# 正则获取网页图片地址
    stringFaPiaoUrl="";stringFaPiaoImageUrl="";stringHTMLSTR=NetTools.GetR......
  • docker 安装MYSQL
    安装dockerrun-p3308:3306--nametest-mysql-v/var/docker-data/mysql/conf:/etc/mysql/conf.d-v/var/docker-data/mysql/logs:/logs-v/var/docker-data/mysql/data:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=123456-dmysql:5.7.43关于主机是不是需要my.cnf实测并......
  • leetcode 17.电话号码的字母组合
    leetcode17.电话号码的字母组合第十七题:电话号码的字母组合1.回溯:首先使用哈希表存储每个数字对应的所有可能的字母,然后进行回溯操作。回溯过程中维护一个字符串,表示已有的字母排列(如果未遍历完电话号码的所有数字,则已有的字母排列是不完整的)。该字符串初始为空。每次取电话......
  • 双脉冲仿真测试(LTspice搭建)
     1.双脉冲测试原理    很多博主已经发布了大量有关双脉冲测试的意义、双脉冲测试原理等,顾在此不在赘诉,如有需要的小伙伴可以点这里。以下重点介绍在LTspice中双脉冲电路的搭建及可能遇到的问题。2.搭建双脉冲测试               ......
  • centos系统安装
    CentOS系统介绍CentOS操作系统是Linux系统的一个发行版。Linux操作系统,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线......
  • 销售效率低下怎么办?试试CRM系统中的销售自动化功能!
    销售效率对企业的盈利能力有着至关重要的联系。提高销售效率,就是要提高销售人员的工作效率和销售转化率。那么,企业如何提高销售效率呢?CRM销售自动化功能可以帮助企业实现这一目标。一、线索管理线索是指有潜在购买意向的客户,是销售过程的起点。CRM系统可以帮助企业进行线索管......
  • CRM系统中的销售漏斗是什么?如何指导销售人员行动?
    CRM管理系统有许多重要的功能,很多人不太了解什么叫销售漏斗。网上关于CRM销售漏斗的讲解。看完以后仿佛懂了,细心想了想,好像没说透。下面说说CRM销售漏斗如何指导销售人员行动。简单来说就是分解销售目标、规划销售时间、预测销售业绩。销售工作像投篮在篮球比赛中,如果想赢,要么......
  • 产品化的CRM还是定制化的CRM?如何选择适合企业的产品
    有些企业在进行CRM管理系统选型时,不太清楚如何摆正CRM产品化和定制化的关系。产品化与定制化CRM如何选择?产品化和定制化矛盾吗?各自有什么优劣势?选型时应怎么考虑?产品化CRM优势是产品稳定、操作简单易上手,定制化CRM可以满足个性化的业务场景。产品化CRM的特点1、产品稳定产品......