MVCWebapi

WEBAPI:仅仅提供了一个轻量级的Http请求响应框架 返回的结果在

MVCWebapi中有两种:1,xml 2,json

3、MVC WebApi
1、webapi的路由规则注册在App_Start\WebApiConfig.cs文件中
2、webapi控制器继承父类 apiController
3、webapi会自动的将返回结果默认以xml格式返回
4、webapi默认是根据http请求方法去控制器中查找有这个方法前缀的方法执行
例如:get请求,则查找带有Get前缀的方法,以参数来辨别要调用的具体方法是谁
5、想要webapi以json格式返回怎么办:
由于默认是以XML格式返回,那么只要将xml格式移除即可
将webapi默认的返回格式设置成json格式写法
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
//将webapi中的XmlFormatter 移除,默认就是以JsonFormatter作为其传输格式
config.Formatters.Remove(config.Formatters.XmlFormatter);
}

3、调用webapi的方式:
get请求http://localhost/api/values 则默认请求 values控制器下的Get()方法
get请求http://localhost/api/values/1 则默认请求 values控制器下的Get(int id)方法将1作为id参数值传递给Get方法
Post请求http://localhost/api/values 则默认请求 values控制器下的Post方法

4、在另外一个网站请求使用httpwebrequest 请求webapi示例:
//模拟浏览器请求http://localhost:55749/api/values/GetPig 传入指定的id参数值
string requestUrl = "http://localhost:15405/infos.ashx?id=" + txtid.Text;
//1.0 实例化web请求对象的实例
WebRequest request = WebRequest.Create(requestUrl);
//2.0 设置其请求方式为get请求
request.Method = "get";
//3.0 获取服务器响应回来的响应报文对象
WebResponse response = request.GetResponse();
System.IO.Stream str = response.GetResponseStream();

//将流转换成字符串
string responsebody = "";
using (System.IO.StreamReader srd = new System.IO.StreamReader(str))
{
//将响应报文体中的数据转换成字符串
responsebody=srd.ReadToEnd();
}

Response.Write(responsebody);

--------------------

/// <summary>
/// 特点:
/// 1、必须继承ApiController
/// 2、如果想要访问webapi则必须注册webapi的路由规则(网站建好以后自动注册)
/// 3、访问mvc webapi 是通过当前http请求的方法来查找对应的action的(只要前缀匹配get或者post即可)
/// </summary>

webapi 没有视图 人家访问你 你返回一个视图起什么作用呢 所以只返回xml 和json

----------------------------
把返回格式变成json 格式

public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
//将xml格式移除则就是json格式返回
config.Formatters.Remove(config.Formatters.XmlFormatter);

-------------------
建 webapi

先建 MVC 然后选择 webapi

api 里 也可以有普通的控制器

1, 建一个普通控制器 然后 添加视图 构造一个form表单

------------------------
客户端 Client aspx页面 后台代码
前台
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="callWebApi.aspx.cs" Inherits="Client.callWebApi" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server"></asp:GridView>

<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div>
</form>
</body>
</html>
--------------------

先 using System.Net;

using System.Net;

public partial class callWebApi : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
/// <summary>
/// 请求 http://localhost:35681/api/values/GetMenus 获取数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
//1.0 构造一个请求对象
string webapi = "http://localhost:35681/api/values/GetMenus";
WebRequest request = WebRequest.Create(webapi);
request.Method = "get";

//2.0 发出请求获取服务器的响应
WebResponse response = request.GetResponse();
//获取响应报文体中的数据
System.IO.Stream stream = response.GetResponseStream();

//3.0 将stream中的流转换成UFT-8格式字符串
string resultString = "";
using (System.IO.StreamReader sr = new System.IO.StreamReader(stream))
{
//将sr中的byte字节转换成字符串
resultString = sr.ReadToEnd();
}

//4.0 resultString:是一个json格式
//[{"Name":"西兰花炒肉","imgPath":"/imags/xlhcr.jpg","price":28.0},{"Name":"黄瓜炒冬瓜","imgPath":"/imags/hg.jpg","price":18.0}]
//4.0.1 将json字符串反序列化成List<TestModel>
System.Web.Script.Serialization.JavaScriptSerializer jsoner = new System.Web.Script.Serialization.JavaScriptSerializer();

List<TestModel> list = jsoner.Deserialize<List<TestModel>>(resultString);

//操作xml
//System.Xml.Serialization.XmlSerializer xml = new System.Xml.Serialization.XmlSerializer(typeof(List<TestModel>));
//xml.Deserialize(
//System.Xml.XmlDocument document = new System.Xml.XmlDocument();
//document.LoadXml("");

//jquery $("<?xml><item><id>10</id></item></xml>").find("item").find("id").val();

//5.0 将list集合绑定到GridView上
this.GridView1.DataSource = list;
this.GridView1.DataBind();
}
}
}

MVCWebapi:
1,如果数据是由我提供

应该开一个MVCWebapi,此系统中具体有哪些url

应该根据业务逻辑来解决

2,如果调用人家的WebApi呢?

则使用 WebRequest和WebResponse 进行 请求响应获取远程的数据

以后进行处理即可

时间: 2024-10-13 06:17:04

MVCWebapi的相关文章

Mvc-WebAPI特性路由(自定义路由)Demo

Demo由VS2017编写. 1.先建一个WebApi项目 2.WebApiConfig.cs需要注册特性路由,config.MapHttpAttributeRoutes(); 3.项目默认有2个Controller,我暂时不动默认的了,新建一个WebApiController:TestController 4.在TestController 类名上加上RoutePrefix特性,api前缀:在下面写一个测试的User类,后面会用到: 在TestController 写两个方法GetUser .

webapi 返回json

web api 默认的已 xml 格式返回数据 现在开发一般都是以 json 格式为主 下面配置让 webapi 默认返回 json ,在需要返回 xml 时只需要加一个查询参数 datatype=xml 即可返回 xml 格式数据 配置如下: 1.新建 一个 mvc webapi 项目 (framework4.0) 2.找到默认的 WebApiConfig.cs 文件 3.修改 WebApiConfig.cs 文件 <span style="font-family: Arial, Hel

构建ASP.NET MVC5+EF6+EasyUI 1.5+Unity4.x注入的后台管理系统(1)-前言与目录(持续更新中...)

前言: 起初写这个框架的时候,可以说在当时来说并不是很流行的设计模式,那是在2012年,面向对象的编程大家都很熟悉, 但是“注入.控制反转(DI,IOC,依赖注入).AOP切面编程”新兴名词 很多人并不知道特别是从事.NET开发的人,至少在当时 是这么样的,但是在今天它们却是非常流行的技术指标,很多大牛也承认,这是主流的开发模式,你们可以从招聘网的技术岗位看出. 我从事过MVC2.0到5.0的相关开发工作,见证了MVC的成熟演变过程,就像本框架一样,设计模式未曾改变,但是代码一直在重 构.我也坚

【最新原创】中国移动(中国联通)_通信账单,详单,个人信息抓取爬虫代码

概要: 1.因为公司需要,就花了一点时间写了一下三大运营商通信数据的抓取,涉及到Web上你所看得到的一切数据. 代码没啥技术含量,重点在于抓包分析过程.期间遇到了很多未知的困难,都一一克服了. 2.由于抓取数据的隐私性,我们的抓包是假设在用户已知自己数据被抓取,并且同意告知短信验证码的情况下进行的, 不属于黑客范畴! 3.整个过程,包括重建数据库表结构,解析json等如同逆向运营商的数据库一般.总体来说,三大运营商更新频率不算频繁,还算较稳定,数据结构,网页结构等都不会做很大的变动. 整体效果如

ASP.NET Web API 学习 一

Technorati 标记: ASP.NET Web API   从参加工作开始就开始关注博客园,在园子里学到很多知识,看过很大大牛的文章,确从未发表过一个字.最近刚刚换了公司,学习Web API,就此开始我的第一篇文章吧,也作为学习的记录! 简介就不多介绍,说说我对ASP.NET Web API 的一点点理解. 不同于 Web Service.WCF, ASP.NET Web API 直接访问和处理 Http 请求和响应,在开发中,减少了很多工作,让人感觉一切是如此顺畅. 首先,创建一个 AS

使用MVC创建API

1.新建MVC-WebAPI 2.Build后页面是这样的,这就是我们需要的页面. 3.自己Add API的页面,然后Run,会发现页面没有action和Description 4.显示action,找到App_Start下的WebApiConfig.cs文件,修改routeTemplate就可.api/{controller}/{id}改成api/{controller}/{action}/{id} 5.展示方面的描述.打开project的Properties,选择Build下的输出,勾选XM

构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(60)-系统总结

前言: 起初写这个框架的时候,可以说在当时来说并不是很流行的设计模式,那是在2012年,面向对象的编程大家都很熟悉, 但是“注入.控制反转(DI,IOC,依赖注入).AOP切面编程”新兴名词 很多人并不知道特别是从事.NET开发的人,至少在当时 是这么样的,但是在今天它们却是非常流行的技术指标,很多大牛也承认,这是主流的开发模式,你们可以从招聘网的技术岗 位看出. 嘿嘿... 我从事过MVC2.0到5.0的相关开发工作,见证了MVC的成熟演变过程,就像本框架一样,设计模式未曾改变,但是代码一直在

ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)-前言与目录(持续更新中...)

开发工具:VS2015(2012以上)+SQL2008R2以上数据库  您可以有偿获取一份最新源码联系QQ:729994997 价格 666RMB  升级后界面效果如下: 日程管理   http://www.cnblogs.com/ymnets/p/7094914.html 任务调度系统界面 http://www.cnblogs.com/ymnets/p/5065154.html 系统权限全套完整图  http://www.cnblogs.com/ymnets/p/5065201.html 系统