Web API中的传参方式
在Restful风格的WebApi的里面,API服务的增删改查,分别对应着Http Method的Get / Post / Delete /Put,下面简单总结了Get / Post /Delete /Put的传参方式
一、Get传参
get设计成传输小数据,而且最好是不修改服务器的数据,所以浏览器一般都在地址栏里面可以看到,数据放在url的QueryString中。
1.1 简单类型
$(function () {
$.ajax({
type: 'get',
url:'http://localhost:60761/api/News',
data: {Id:,Title:"新闻1",Desc:'这是新闻1'},
success: function (data) {
console.log(data)
}
})
});

1.2 复杂类型
如果我们想通过get传输复杂类型,如把Action中接收的参数是News类型来接受,发现不能通过get直接传参给复杂类型,如下图

为了实现get方式传参给复杂类型,这里提供了两种解决办法:
1.2.1 FromUri属性
FromUri的作用是强制从uri中给复杂类型参数赋值,只需要在上边代码的参数前边加上这个属性就可以了,运行结果如下:

1.2.2 序列化
$(function () {
$.ajax({
type: 'get',
url: 'http://localhost:60761/api/News',
data: { newstr: JSON.stringify({ Id: , Title: "新闻1", Desc: '这是新闻1' }) },
success: function (data) {
console.log(data)
}
})
});
这里我们用JavaScriptSerializer进行序列化的,实际开发中我们也可以使用Json.net进行,Json.net的效率要更高些。

二、post传参
post传输数据时,大小基本没有限制,数据存放在请求的报文体的Form中,用户在url中看不到数据,相对较安全,但是监听器也能很容易地检测到Form中的数据。
2.1 传单个简单类型(FromBody)
$(function () {
$.ajax({
type: 'post',
url: 'http://localhost:60761/api/News',
data: { "": "新闻1" },//这里的key必须为空
success: function (data) {
console.log(data)
}
})
});

2.2 传多个简单类型(dynamic)
传一个简单类型的时候也可以采用这种方式,这种方式的好处是可以不用写data:{"","value"}这样不好看的代码。
$(function () {
$.ajax({
type: "post",
contentType: 'application/json',//这个必须加上
url: "http://localhost:60761/api/News",
data: JSON.stringify({ Id: "1", Title: "这是新闻1", Desc: "这是新闻1" }),
success: function (data, status) { }
});
});

2.3 传一个复杂类型
$(function () {
$.ajax({
type: "post",
url: "http://localhost:60761/api/News",
data: { Id: "1", Title: "这是新闻1", Desc:"这是新闻1"},
success: function (data, status) { }
});
});

2.4 简单类型数组
var idArr = [1, 2, 3, 4];
$(function () {
$.ajax({
type: "post",
contentType: 'application/json',
url: "http://localhost:60761/api/News",
data: JSON.stringify(idArr),
success: function (data) { }
});
});

2.5 复杂类型数组
var newsArr = [
{ Id: 1, Title: "新闻1", Desc: "这是新闻1" },
{ Id: 2, Title: "新闻2", Desc: "这是新闻2" },
{ Id: 3, Title: "新闻3", Desc: "这是新闻3" }
]; $(function () {
$.ajax({
type: "post",
contentType: 'application/json',
url: "http://localhost:60761/api/News",
data: JSON.stringify(newsArr),
success: function (data) { }
});
});
注:put和delete的传参方式和Post一样,这里不再重复。
参考文档:
1.http://www.cnblogs.com/landeanfen/p/5337072.html
2.https://www.cnblogs.com/home-wang/p/5072904.html
Web API中的传参方式的更多相关文章
- react中的传参方式
react是一个SPA模式,即组件嵌套租,在一个单页面的应用中组件间的数值传递是必不可少的,主要的传参方式大致有一下几种: 1,在挂载的地方给组件传参 ReactDOM.rander(<a na ...
- axios中post传参方式
最近做vue项目,做图片上传的功能,使用get给后台发送数据,后台能收到,使用post给后台发送图片信息的时候,vue axios post请求发送图片base64编码给后台报错HTTP 错误 414 ...
- java 中 Integer 传参方式的问题
Java本身都是值传递式的调用,对于对象传递的是地址值.给地址值重新赋值等于重新指向,不会影响外层. 而且这里Integer对象也有特殊性.其实现上可能类似 class Integer{ final ...
- js 获取纯web地址栏中URL传参
function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +&quo ...
- 剖析Asp.Net Web API路由系统---WebHost部署方式
上一篇我们剖析了Asp.Net路由系统,今天我们再来简单剖析一下Asp.Net Web API以WebHost方式部署时,Asp.Net Web API的路由系统内部是怎样实现的.还是以一个简单实例开 ...
- mock和axios常见的传参方式
第一次接手项目,传参方式还有些吃力,因此做一下总结. 首先我们需要会看swagger中的接口.里面写了某个接口需要接收什么样的值,前端怎么传递这个值 在mock中的传参方式: mock中传参的方式有两 ...
- 在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入
在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式 ...
- WEB API 中HTTP的get、post、put,delete 请求方式
一.WEB API 中HTTP 请求方式的四个主要方法 (GET, PUT, POST, DELETE), 按照下列方式映射为 CURD 操作: 1.POST 用于新建资源,服务端在指定的URI 上创 ...
- ASP.NET Web API中实现版本的几种方式
在ASP.NET Web API中,当我们的API发生改变,就涉及到版本问题了.如何实现API的版本呢? 1.通过路由设置版本 最简单的一种方式是通过路由设置,不同的路由,不同的版本,不同的contr ...
随机推荐
- 第一天:学会如何在pycharm上编写第一条robotframework用例
---恢复内容开始--- 1.python环境的安装和依赖包的下载
- Hard Life UVA - 1389(最大密度子图 输出点集)
题意: rt 解析: 我用的第二种方法... s向所有的边连权值为1的边 所有的点向t连权值为mid的边 如果存在u - > v 则边向u和v分别连一条权值为INF的边 二分mid 用dfs ...
- 【XSY2534】【CF835D】Palindromic characteristics 回文自动机
题目大意 一个字符串\(s\)是\(1\)−回文串当且仅当这个串是回文串. 一个串\(s\)是\(k\)−回文串\((k>1)\)当且仅当\(s\)的前一半与后一半相同且\(s\)的前一 ...
- Node<T> 的作用
Java中常见到以下定义的类 public class Node<T> { T data; public Node<T> next; Node(T data) { this.d ...
- npm 淘宝源
--------- npm: 淘宝源设置:npm config set registry https://registry.npm.taobao.org
- 【dfs】p1025 数的划分
P1025 数的划分 题目描述 将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5; 1,5,1; 5,1,1; 问有 ...
- HDU-6370 Werewolf(杭电多校6I)
一群人在玩狼人杀,村民只会说真话,狼人会说真话和假话,要你求出那些人一定是村民或者那些人一定是狼人.想到了并查集不会用... 1,如果全部人都是狼人,一定可以所以一定是村民的人一定是0. 2, 加入是 ...
- UVA 11149-Power of Matrix(等比矩阵求和)
给定一个矩阵A 要求A + A^2 + A^3 +…. A^k: 对于到n的等比矩阵求和 如果n是偶数: 如果n是奇数: #include<stdio.h> #include<s ...
- Spring的核心
技术书籍这么多,每次好不容易读完一本,但总过不了多久就会遗忘.为了对抗,整理记录和回看,也是实属必要.由此,从这<Spring 实战(第四版)>开始,记录一下知识点,下次再要复习时,能免去 ...
- 2019.4.1考试&2019.4.2考试&2019.4.4考试
4.1:T1原题,T2码农板子题,T3板子题 4.2 好像是三个出题人分别出的 以及#define *** 傻逼 T1 思维好题 转成树形DP,$dp[i][j]$表示点i值为j的方案数,记录前缀和转 ...
