C# WebApi传参及Postman调试

news2024/10/1 5:29:48

概述

欢迎来到本文,本篇文章将会探讨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调用截图

# 概述

欢迎来到本文,本篇文章将会探讨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调用截图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1395517.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全产品之认识WEB应用防火墙

随着B/S架构的广泛应用&#xff0c;Web应用的功能越来越丰富&#xff0c;蕴含着越来越有价值的信息&#xff0c;应用程序漏洞被恶意利用的可能性越来越大&#xff0c;因此成为了黑客主要的攻击目标。传统防火墙无法解析HTTP应用层的细节&#xff0c;对规则的过滤过于死板&#…

【面试合集】说说什么是进程?什么是线程?区别?

面试官&#xff1a;说说什么是进程&#xff1f;什么是线程&#xff1f;区别&#xff1f; 一、进程 操作系统中最核心的概念就是进程&#xff0c;进程是对正在运行中的程序的一个抽象&#xff0c;是系统进行资源分配和调度的基本单位 操作系统的其他所有内容都是围绕着进程展开…

[足式机器人]Part2 Dr. CAN学习笔记- Kalman Filter卡尔曼滤波器Ch05

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记 - Kalman Filter卡尔曼滤波器 Ch05 1. Recursive Algirithm 递归算法2. Data Fusion 数据融合Covarince Matrix协方差矩阵State Space状态空间方程 Observation观测器3. Step by step : Deriatio…

【JVM】强软弱虚引用详细解释

​ &#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;JVM ⛳️ 功不唐捐&#xff0c;玉汝于成 ​ 目录 前言 正文 1、强引用 2、软引用 3、弱引用 4、虚引用 结语 我的其他博客 前言 在Java中&#xff0c;引用类型对于对象的生命周期管…

SG-9101CGA(汽车+125°C可编程晶体振荡器)

SG-9101CGA是用于汽车CMOS输出的可编程晶体振荡器&#xff0c;彩用2.5 x 2.0 (mm)封装&#xff0c;0.67 MHz至170 MHz频率范围、工作温度范围为-40℃~125℃&#xff0c;符合车规级晶振&#xff0c;无铅&#xff0c;绿色环保&#xff0c;满足汽车工业标准&#xff0c;电源电压范…

Django初创shop应用

创建项目和应用 启动一个名为mysite的新项目&#xff0c;其中包含一个名为shop的应用程序。 打开shell并运行以下命令&#xff1a;django-admin startproject mysite cd myshop/ django-admin startapp shop 将shop应用程序添加到INSTALLED_APPS 编辑项目的settings.py文件&am…

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(9)-Fiddler如何设置捕获Https会话

1.简介 由于近几年来各大网站越来越注重安全性都改成了https协议&#xff0c;不像前十几年前直接是http协议直接裸奔在互联网。还有的小伙伴或者童鞋们按照上一篇宏哥的配置都配置好了&#xff0c;想大展身手抓一下百度的包&#xff0c;结果一试傻眼了&#xff0c;竟然毛都没有…

MyBatisX 基本使用

MyBatisX 插件&#xff0c;自动根据数据库生成 domain 实体对象、mapper、mapper.xml、service、serviceImpl。 MyBatisX 的使用&#xff1a; MyBatis-Plus依赖&#xff1a; <!--mybatisPlus--><dependency><groupId>com.baomidou</groupId><arti…

C/C++ BM6判断链表中是否有环

文章目录 前言题目解决方案一1.1 思路阐述1.2 源码 解决方案二2.1 思路阐述2.2 源码 总结 前言 做了一堆单链表单指针的题目&#xff0c;这次是个双指针题&#xff0c;这里双指针的作用非常明显。 题目 判断给定的链表中是否有环。如果有环则返回true&#xff0c;否则返回fal…

汇编和c++初学,c++字符串加整型,导致的字符串偏移

从汇编角度分析"helloworld"1 “helloworld”1对应 mov dword ptr [a],1 mov eax,dword ptr [a] add eax,offset string "helloworld" (03CCCBCh)eax地址偏移加了1&#xff0c; lea ecx,[test]最终取的内存偏移地址&#xf…

windows安装mysql5.7

看了如何学习mysql后&#xff0c;就开始本地安装mysql&#xff0c;开始学习了。 1.官网下载 官网地址&#xff1a; https://dev.mysql.com/downloads/mysql/ 选择5.7版本 点击 “No thanks, just start my download”开始下载 下载64位的压缩包版 解压下载好的.zip文件&#xf…

数学领域的经典教材有哪些

有本书叫做《自然哲学的数学原理》&#xff0c;是牛顿写的&#xff0c;读完之后你就会感叹牛顿的厉害之处! 原文完整版PDF&#xff1a;https://pan.quark.cn/s/a817a228b7bf 那玩意真的是人写出来的么… 现代教材把牛顿力学简化成三定律&#xff0c;当然觉得很简单。只有读了原…

流程效率分析方案

流程效率分析 流程效率分析方案概述功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注释也是必不可…

LaWGPT安装和使用教程的复现版本【细节满满】

文章目录 前言一、下载和部署1.1 下载1.2 环境安装1.3 模型推理 总结 前言 LaWGPT 是一系列基于中文法律知识的开源大语言模型。该系列模型在通用中文基座模型&#xff08;如 Chinese-LLaMA、ChatGLM等&#xff09;的基础上扩充法律领域专有词表、大规模中文法律语料预训练&am…

C语言总结十三:程序环境和预处理详细总结

了解程序的运行环境可以让我们更加清楚的程序的底层运行的每一个步骤和过程&#xff0c;做到心中有数&#xff0c;预处理阶段是在预编译阶段完成&#xff0c;掌握常用的预处理命令语法&#xff0c;可以让我们正确的使用预处理命令&#xff0c;从而提高代码的开发能力和阅读别人…

Unity Mirror VR联机开发 实战篇(二)

一、迁移示例中的联机物体 1、将MirrorExamplesVR工程中的部分文件夹复制到自己的工程中。 1、打开MirrorExamplesVR中的 SceneVR-Common场景。 2、将场景中没用的东西都删掉&#xff0c;只留下面这些&#xff0c;新建一个空物体XR Mirror&#xff0c;将所有剩下的物体拖成XR …

酷开科技将AR技术多方应用 打造全能酷开系统

酷开系统AR技术的核心是通过计算机视觉、图形渲染和深度感知等技术&#xff0c;将虚拟物体或信息精确地叠加到现实世界的场景中。通过智能摄像头捕捉真实环境的图像和视频&#xff0c;结合3D渲染技术&#xff0c;生成与现实场景相融合的虚拟图像&#xff0c;实现虚实结合的视觉…

【目标检测】YOLOv7算法实现(二):正样本匹配(SimOTA)与损失计算

本系列文章记录本人硕士阶段YOLO系列目标检测算法自学及其代码实现的过程。其中算法具体实现借鉴于ultralytics YOLO源码Github&#xff0c;删减了源码中部分内容&#xff0c;满足个人科研需求。   本篇文章在YOLOv5算法实现的基础上&#xff0c;进一步完成YOLOv7算法的实现。…

启扬方案:新能源电站功率预测系统数据采集设备解决方案

根据国家能源局发布数据显示&#xff0c;截至8月底&#xff0c;全国发电装机容量约24.7亿千瓦&#xff0c;同比增长8.0%。其中风电装机容量约3.4亿千瓦&#xff0c;同比增长16.6%&#xff1b;太阳能发电装机容量约3.5亿千瓦&#xff0c;同比增长27.2%。随着以风力发电、光伏发电…

基于高斯过程的贝叶斯优化

基于Bayes_opt实现GP优化 bayes-optimization是最早开源的贝叶斯优化库之一&#xff0c;也是为数不多至今依然保留着高斯过程优化的优化库。由于开源较早、代码简单&#xff0c;bayes-opt常常出现在论文、竞赛kernels或网络学习材料当中&#xff0c;因此理解Bayes_opt的代码是…