WebAPI GET和POST请求的几种方式

.NET WebApi 实战第六讲之POST方法实现 一个系统的复杂度,往往因为表的繁多页变的越来越复杂,维护、开发等维度都会变的越来越广,越来越难以理解。这其中就包括数据处理方面,同一个业务场景的数据保存在不同的表中,就会出现多表联查这种不可避免的情况,当然本身所有数据库系统都是支持联查的,无论是左联查(left join)还是右联查(right join),亦或是模糊查寻。但是我们使用的是EF技术,是尽量避免去过多在数据库中进行操作,... 阅读详情

GET请求

1.无参数get请求

 一般get请求有两种写法,一种是$.get()   一种是$.ajax({type:"get"}),我个人比较喜欢用后者。

下面例子主要是get无参数请求,获取人员列表并将数据返回到前台,并将返回的json数据转换成字符串弹出,以便知道是否请求成功,并且返回的数据是否正确

复制代码
 1    $.ajax({
 2             url: "/api/Person/getList",
 3             type: "get",
 4             success: function (data) {
 5                 alert(JSON.stringify(data));
 6                 alert("成功");
 7             },
 8             error: function () {
 9                 alert("错误");
10             }
11         });
复制代码

后台代码

复制代码
 1  public class PersonController : ApiController
 2     {
 3       
 4         public List<Person> getList()
 5         {
 6             var PersonList = new List<Person>(){
 7                 new Person{Name="张和",Sex="男",Duty="工程师",CompanyName="北京XX科技有限公司"},
 8                 new Person{Name="张丽",Sex="女",Duty="工程师",CompanyName="北京XX科技有限公司"},
 9                 new Person{Name="张春雷",Sex="男",Duty="工程师",CompanyName="北京XX科技有限公司"}
10             };
11             return PersonList;
12         }
13     }
复制代码

2.多个参数的Get请求,参数格式:data:{},例如 一个参数的get请求是data:{"Name":"张丽"},两个参数:data:{"Name":"张丽","Sex":"女"},多个参数只是在{}里加入多个参数而已。

复制代码
 1   $.ajax({
 2             url: "/api/Person/GetPerson",
 3             type: "get",
 4             data:{"Name":"张丽","Sex":"女"},
 5             success: function (data) {
 6                 alert(data.Name+" "+data.Duty+"  "+data.CompanyName);
 7             },
 8             error: function () {
 9                 alert("错误");
10             }
11         });
复制代码

后台代码

复制代码
 1    public Person GetPerson(string Name,string Sex)
 2         {
 3             var PersonList = new List<Person>(){
 4                 new Person{Name="张和",Sex="男",Duty="工程师",CompanyName="北京XX科技有限公司"},
 5                 new Person{Name="张丽",Sex="女",Duty="工程师",CompanyName="北京XX科技有限公司"},
 6                 new Person{Name="张春雷",Sex="男",Duty="工程师",CompanyName="北京XX科技有限公司"}
 7             };
 8             var p = PersonList.FirstOrDefault(f => f.Name == Name&&f.Sex==Sex);
 9             return p;
10         }
复制代码

最终效果

 

 

POST请求

1.无参数的POST请求

      无参数的POST请求和GET请求是一样的,只不过是ajax里的type:"get"改成type:"post"而已,后台函数要加 [HttpPost]标签,主要是标记该函数是post请求函数,如果get请求是请求不进去该函数的。

2.一个参数的POST请求

    一个参数的post请求和GET请求的方式不一样,后台函数的参数必须用[FromBody]标记,这样才能访问到该函数,如果不加[FromBody] , ASP.NET Web API能够正确的识别我们的UserController控制器处理Post /api/Person ,但却不能找到一个可以接受的方法来处理请求。那么有人就说了后台参数加了[FromBody] ,js如下是不是就可以请求成功哪

 

复制代码
 1  $.ajax({
 2             url: "/api/Person/Post_Person",
 3             type: "post",
 4             data:{"Name":"张丽"},
 5             success: function (data) {
 6                 alert("成功");
 7                 alert(data);
 8                 alert(data.Name + " "  + data.CompanyName);
 9             },
10             error: function () {
11                 alert("错误");
12             }
13         });
复制代码

 

答案是失败的,确切的说是可以访问到PersonControler里的Post_Person方法的,但是Post_Person函数的参数是获取不到前台ajax传递过来的值得,为什么呢?是因为Web API 要求请求传递的 [FromBody] 参数,是有一个特定的格式,才能被正确的获取到。而这种特定的格式并不是我们常见的 key=value 的键值对形式。Web API 的模型绑定器希望找到 [FromBody] 里没有键名的值,也就是说, 不是 key=value ,而是 =value 。

所以将data:{"Name":"张丽"}改成data:{"":"张丽"} 这样后台函数才可以正确接收到传递过来的参数值

3.多个参数的POST请求

   有人会认为多个参数的Post请求,就是后台函数加多个带[FromBody]标记的参数即可,如果你是这样想的,那么你错了。请一定要记住多个参数POST请求,

[FromBody] 修饰的参数只能有一个 。我们需要对传递的多个参数进行封装才行。   

 

 

复制代码
 1 var Person = {
 2         Name: "张丽",
 3         Sex: "女",
 4         Duty: "ddd",
 5     }
 6     
 7         $.ajax({
 8             url: "/api/Person/Post_PersonObj",
 9             type: "post",
10             data: Person,
11             success: function (data) {
12                 alert("成功");
13                 alert(data);
14                 alert(data.Name + " " + data.CompanyName);
15             },
16             error: function (data) {
17                 alert(data.responseText);
18             }
19         });
复制代码

 

后台代码 

复制代码
 1 [HttpPost]
 2        public Person Post_PersonObj([FromBody]Person per)
 3         {
 4             var PersonList = new List<Person>(){
 5                 new Person{Name="张和",Sex="男",Duty="工程师",CompanyName="北京XX科技有限公司"},
 6                 new Person{Name="张丽",Sex="女",Duty="工程师",CompanyName="北京XX科技有限公司"},
 7                 new Person{Name="张春雷",Sex="男",Duty="工程师",CompanyName="北京XX科技有限公司"}
 8             };
 9             var p = PersonList.FirstOrDefault(f => f.Name == per.Name&&f.Sex==per.Sex);
10             return p;
11         }




整个例子的源代码下载地址:http://pan.baidu.com/s/1mgooA8K
上位机:winform调用webapi接口GET和POST实现案例 点击下一步,不用配置HTTPS,我用的是.NET8环境,根据自己实际需要去进行选择。 阅读详情

相关推荐

Postman访问Webapi的Get/Post/Put/Delte请求

问题场景: ASP.NET MVC WebApi 定义Get/Post/Put/Delete方法。使用Postman工具调用相应的方法。根据方法的特性不同、参数的特性不同,所访问的方式也不同。 问题分析: 创建一个新的WebApi的项目。控制器自动生成的代码如下: 首先看到类的上面有个特性默认如下: [Route("api/[controller]")] 这个是访问时的路由规则(e...

CHIZHIDA 4876

ASP.NET MVC学习系列(二)-WebAPI请求

  继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理。 这里我使用Jquery 来发起异步请求实现数据调用。   继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用。   一、无参数Get请求   一般的get请求我们可以使用jquery提供的$...

weixin_33861800的博客 867

C# 后台代码Post、Get调用WebAPi

C# Net 后台代码调用webapi接口

WebApi参数传递一些坑

一. 基本调用规则 前提 WebApi的默认路由规则为:routeTemplate: “api/{controller}/{id}”, 下面为我们统一将它改为 routeTemplate: “api/{controller}/{action}/{id}”,这样我们在调用的时候,还是通过拼接方法名来识别,不用考虑上面的坑别的规则了,这里我单纯的来探讨WebApi的传参和调用。 基本的调用规则 是什么请求,在方法上面标注什么特性,常见的有[HttpGet][HttpPost][HttpPut][Http

weixin_46879188的博客 3387

智能安防摄像头埋点实践:用户行为与设备状态的闭环监控(含AI事件)

智能安防摄像头埋点闭环体系设计及应用实践 摘要: 本文系统阐述了智能安防摄像头埋点闭环体系的设计与实践。首先分析了传统埋点的不足及闭环埋点的价值,提出由用户行为埋点、设备状态埋点和AI事件埋点构成的三维埋点体系框架。详细介绍了闭环监控的四大流程:数据采集、汇聚清洗、分析建模和智能决策。通过误报优化、个性化策略等案例展示了AI事件闭环的实际应用价值,并探讨了隐私合规、性能优化等关键挑战的解决思路。最后展望了端侧AI增强、预测型埋点等未来发展趋势。该体系实现了从数据采集到业务决策的完整闭环,有效提升了AI模型性

专注智能硬件软硬件产品经理成长与实战,分享从需求定义到量产落地的真实日记。涵盖IoT趋势洞察、研发协作经验、产品方法论与工具箱,用轻松有趣的“汪式”视角,陪伴产品经理成长、避坑与升级。 1046

2023电赛B题实战解析:基于立创天空星开发板的同轴线缆长度与负载测量系统

本文详细解析了2023年全国大学生电子设计竞赛B题的实战方案,重点介绍了基于立创EDA天空星开发板(STM32F103)的同轴线缆长度与负载测量系统。文章深入剖析了两种核心测量方案,并推荐了更稳定易实现的NE555测电容法,提供了从硬件选型、电路设计到软件编程、参数标定的完整“施工图”,实测精度可达厘米级和皮法级,为电赛复现与高精度测量学习提供了清晰指导。

weixin_36303305的博客 232

.Net 调用 Webapi的 POST和GET请求

调用Post请求方法代码 /// &lt;summary&gt; /// webapi-post /// &lt;/summary&gt; /// &lt;param name="url"&gt;&lt;/param&gt; /// &lt;param name="body"&gt;&lt;/par

liwan09的博客 3045

动态对抗Zygisk-IL2CppDumper:Unity游戏安全新策略

本文深入探讨了对抗Zygisk-IL2CppDumper攻击的Unity游戏安全新策略。通过实时内存监控、动态混淆技术和异常行为检测体系,有效防止关键代码被动态提取。文章详细介绍了内存指纹系统、运行时混淆方案和五维特征模型等实用防御手段,帮助开发者提升游戏安全性。

weixin_29325955的博客 306

C# Http 请求接口 Get / Post

get 和 post 请求,最早被用来做浏览器与服务器之间交互HTML和表单的通讯协议,后来又被广泛的扩充到接口格式的定义上,到目前为止,get / post 请求依然应用在各大网站中,比如在用户登录时,调用 get / post 请求将用户名、密码传到服务器,由服务器进行判断,是否允许用户登录,再将结果返回给浏览器,这样就实现了登录的功能。在后期的 pc 软件开发中,get / post 请求偶尔也会用到,做为一个程序员,http 协议也是我们必须要学的知识点。

熊思雨的博客 2万+

伺服电机开发实战指南

伺服电机作为工业自动化的核心部件,正经历前所未有的技术革新。本文从基础原理出发,详细介绍了伺服电机的分类、工作原理和特性,分析了伺服电机系统组成与核心部件,探讨了企业级开发技术,包括控制算法、通信协议和故障诊断等高级功能,并提供了实战案例分析,从行业应用到具体开发步骤,展示了伺服电机的工程实现。通过深入理解伺服电机的原理、掌握开发技术、学习应用案例,可以实现伺服系统的高性能开发与应用。

全栈 1681

ESP32-CAM图传小车:端边协同的嵌入式视觉系统设计

在物联网边缘智能场景中,嵌入式视觉系统需平衡实时性、算力与成本。其核心在于理解图像采集、硬件编码、低延迟传输与分层计算的基本原理——OV2640等CMOS传感器配合JPEG硬件编码可显著降低主控负载;TCP流式协议比HTTP/RTSP更适配资源受限MCU;而‘计算卸载’架构将OpenCV等重负载移至Android端,使ESP32专注实时控制与传输,既发挥FreeRTOS任务调度优势,又规避了PSRAM带宽与内存瓶颈。该模式广泛适用于教育机器人、智能巡检及DIY视觉终端等场景,本文以WiFi图传坦克小车为载体

weixin_42524864的博客 373

C# WebApi Get请求方式传递实体参数

我又搞回笃NET啦!java之路真是命运多舛,好事多磨。不过,也许我已经进入无招胜有招,博取众家之长、融会贯通的地步了。 对于WebApi,今天又有了一些新的了解。 话说,Get请求方式,参数会附在Url后面,称为QueryString,传递给服务器;而POST方式,则将参数放在消息体内。采用QueryString的话,简单,方便,但只适合参数比较少的情况;但有的时候,需要传递比较多、比较复杂的参...

左直拳的马桶_日用桶 1万+

【数学基础】基于欧拉角表达的旋转顺序

欧拉角旋转顺序

FalschxMico 1384

webapi中的Get和Post(重点)请求详解ajax

来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理。 这里我使用Jquery 来发起异步请求实现数据调用。   继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用。   一、无参数Get请求   一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现:  ...

ChinaSaoPao的博客 2035

【深度学习|语义分割之UNet】如何使用ResNet50 作为 U-Net 网络的骨干网络(backbone)并使用预训练的 ResNet50 模型。附代码及解读。

【深度学习|语义分割之UNet】如何使用ResNet50 作为 U-Net 网络的骨干网络(backbone)并使用预训练的 ResNet50 模型。附代码及解读。

985小水博的摸鱼日常 3091

用 ADT 连接 SAP S/4HANA Public Cloud 开发租户的完整落地指南

摘要:在SAP S/4HANA公有云中进行ABAP开发时,必须使用Development Tenant(客户端080)而非Customizing Tenant(客户端100)连接ADT工具。开发用户需具备SAP_BR_DEVELOPER角色且写权限不受限,开发对象应创建在结构包的子包中。连接前需确认正确的ABAP服务URL(通常为Launchpad URL去掉"/ui"),并通过运行控制台程序验证全链路功能。典型开发场景如通过BAdI实现业务校验时,需遵循Clean Core原则在指定包

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 339

netcore webapi action 同时支持 get 和 post 请求

首先,我们不管有没有请求体参数过来,我们先从请求体里把内容解析成字符串出来留作之后的备用,然后检查被绑定模型的类型,如果是基本类型,比如int类型的id参数,那我们就可以先看queryString中有没有这个key,没有就从json或者表单里面去找,找到之后转换成对应的类型ConvertTo,其中的bindingContext.ModelMetadata.ParameterName拿到参数名字(id),bindingContext.ModelType拿到参数对应的类型是int。

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 9万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

webapi创建及POST、GET访问

一、webapi创建 1、创建项目   我使用的是VS2015,点开新建项目,安装如下操作执行: . 2、设置路由 config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional...

qq_35382207的博客 2466

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

请求WebApi的几种方式

请求WebApi的几种方式 目前所了解的请求WebAPI的方式有通过后台访问api 和通过js 直接访问api接口 首先介绍下通过后台访问api的方法,可以使用HttpClient的方式也可以使用WebRequest的方式 1、HttpClient的方式   (1)Get请求 string url = "http://10.1.1.1:8080/"; p...

weixin_34308389的博客 429

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: httpClient post WebAPI
下一篇: ASP.NET MVC学习之Ajax(完结)
【Help】
博客等级 码龄16年 192粉丝 191原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值