Web API初探
前几天有位同事说web api中的接口参数为对象的时候不好接收,具体什么方式我忘记了,虽然本人以前并没有接触过这方面的知识,但是据说和MVC差不多的,今天小小的研究一下,我想应该是可以的。
直接新建一个WEB API的项目,本人使用HttpClient这个类进行HTTP请求(简单方便强大些)
一、GET请求
先看GET方式请求
我们先新建一个用户对象,重写ToString方法。
public class Users
{
public int Id { get; set; }
public string UserName { get; set; }
public override string ToString()
{
string str = string.Format("Id={0}&UserName={1}", Id, UserName);
return str;
}
}
然后在一个Action中编写请求方法:
public ActionResult Index()
{
Users users = new Users()
{
Id = ,
UserName = "wms"
};
string geturl = "http://localhost:34390/api/gpm/test/ObjGet?" + users.ToString();
HttpClient client = new HttpClient();
client.GetAsync(geturl);
return View();
}
接收端:
public class Users
{
public int Id { get; set; }
public string UserName { get; set; }
} [HttpGet]
public void ObjGet([FromUri]Users users)
{
var obj = users;
}
看一下请求结果:

结果是可以的,但是必须要加上HttpGet和FromUri这个属性,否则是不行的
二、POST方式
post方式还是有些麻烦的,为了便于传输,在Users类中新增一个方法:
public class Users
{
public int Id { get; set; }
public string UserName { get; set; }
public override string ToString()
{
string str = string.Format("Id={0}&UserName={1}", Id, UserName);
return str;
}
public Dictionary<string, string> ToDictionary()
{
return new Dictionary<string, string>()
{
{"Id",Id.ToString()},
{"UserName",UserName}
};
}
}
在看一次请求过程:
public ActionResult Index()
{
string posturl = "http://localhost:34390/api/gpm/test/ObjPost";
Users postUser = new Users()
{
Id = ,
UserName = "wms2"
};
HttpContent content = new FormUrlEncodedContent(postUser.ToDictionary());
HttpClient client = new HttpClient();
client.PostAsync(posturl, content);
return View();
}
接收端:
[HttpPost]
public void ObjPost([FromBody]Users users)
{
var user = users;
}
查看结果:

这样是行的通的
Web API初探的更多相关文章
- ASP.NET WEB API 初探
本文初步介绍如何简单创建一个ASP.NET Web Api 程序. Web Api 顾名思义就是一个Api接口,客户端可调用此接口进行业务操作.此类应用与 ASP.NET web服务(即使用扩展名. ...
- 初探.NET CORE WEB API(RESTful风格)
前面有4篇系列博客 (一)Asp.net web api中的坑-[找不到与请求 URI匹配的 HTTP 资源] (二)Asp.net web api中的坑-[http get请求中的参数] (三)As ...
- ASP.NET Web API(一):使用初探,GET和POST数据
概述 REST(Representational State Transfer表述性状态转移)而产生的REST API的讨论越来越多,微软在ASP.NET中也添加了Web API的功能 项目建立 在安 ...
- 初探ASP.NET Web API
什么是ASP.NET Web API? 官方的解释是 ASP.NET Web API is a framework that makes it easy to build HTTP services ...
- 初探ASP.NET Web API (转)
http://www.cnblogs.com/mejoy/p/6402821.html 什么是ASP.NET Web API? 官方的解释是 ASP.NET Web API is a framewor ...
- RESTful Web Services初探
RESTful Web Services初探 作者:杜刚 近几年,RESTful Web Services渐渐开始流行,大量用于解决异构系统间的通信问题.很多网站和应用提供的API,都是基于RESTf ...
- [转]ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication)
本文转自:http://www.cnblogs.com/parry/p/ASPNET_MVC_Web_API_digest_authentication.html 在前一篇文章中,主要讨论了使用HTT ...
- ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication)
在前一篇文章中,主要讨论了使用HTTP基本认证的方法,因为HTTP基本认证的方式决定了它在安全性方面存在很大的问题,所以接下来看看另一种验证的方式:digest authentication,即摘要认 ...
- ASP.NET Web API(二):安全验证之使用HTTP基本认证
在前一篇文章ASP.NET Web API(一):使用初探,GET和POST数据中,我们初步接触了微软的REST API: Web API. 我们在接触了Web API的后就立马发现了有安全验证的需求 ...
随机推荐
- 【.NET深呼吸】清理对象引用,有一个问题容易被忽略
大家知道,托管代码一个重要的特点是自动管理内存,即我们常说的垃圾回收机制,那些高大上的理论我就不重复了,有兴趣的朋友可以翻书.我这个有个毛病——不喜欢很严肃地去说一些理论的东西,所以我不多介绍了. 一 ...
- JS preventDefault ,stopPropagation ,return false
所谓的事件有两种:监听事件和浏览器对特殊标签元素的默认行为事件.监听事件:在节点上被监听的事件操作,如 select节点的change事件,a节点的click事件.浏览器的默认事件:特定页面元素上带的 ...
- js学习内容的整理
1.jquery动态添加Table中的一行 function addTableRow(tableId){var html = '<tr>\ ......\ </tr>" ...
- c++ stringstream(老好用了)
前言: 以前没有接触过stringstream这个类的时候,常用的字符串和数字转换函数就是sscanf和sprintf函数.开始的时候就觉得这两个函数应经很叼了,但是毕竟是属于c的.c++中引入了流的 ...
- Easyui 让Window弹出居中与最大化后居中
easyui1.3.2版本,window的弹出不会居中了.而dialog是会居中的,我们必须为为window的open事件做扩展 代码如下:只要加入以下代码即可.如果你是看了MVC项目系列的,把他放到 ...
- 如何用Pivot实现行列转换
在Oracle中,如果要实现行列转换,较为常见的是用DECODE和CASE语句.对于简单的行列转行,DECODE和CASE语句尚能应付.在逻辑比较复杂,分组聚合较多的场景中,DECODE和CASE语句 ...
- Windows 搭建 .NET 跨平台环境并运行应用程序
写在前面 阅读目录: Install .NET Version Manager (DNVM) Install .NET Core Execution Environment (DNX) Write t ...
- 让你的Mac支持NTFS
前段时间换成Mac电脑之后,发现有一点不爽,不能在Mac下写入NTFS格式的磁盘,所以就去研究了一下. 解决方法有如下三种. 第一种,直接使用第三方软件,如Paragon NTFS for MAC,T ...
- MVC中局部视图的使用
加载部分视图 $("#result").load("/home/message",function(){ //加载完之后隐藏进度条 }); public Act ...
- javabean和jsp动作元素
model1就是利用了jsp和javabean 的组合来处理问题.jsp页面如果有太多的逻辑代码的话,维护起来和扩展起来是相当的麻烦的.所以jsp的逻辑代码部分都打包到一种java类当中进行编写.这种 ...