WebApi个人理解概要

WebApi概要
  1. Global文件的作用:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            //1.注册区域路由
            AreaRegistration.RegisterAllAreas();
            //2.注册webApi的路由
            WebApiConfig.Register(GlobalConfiguration.Configuration);
            //3.注册全局过滤器
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            //4.注册网站路由
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            //5.优化js、cs
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
  2. WebApi特点

    1. 类必须继承ApiController            

    2. 返回类型不再是ActionResult

    3. 默认是请求WebApi控制器中的和HttpMethod同名的方法

  3. 设置当前WebApi的默认返回格式为json--移除xml格式

    1. config.Formatters.Remove(config.Formatters.XmlFormatter);

  4. 网站访问WebApi,要提供相应的url接口

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    //http://localhost:4221/api/values/getpiglist
    protected void Page_Load(object sender, EventArgs e)
    {
        //1.拼装要请求数据的url
        string url = "http://localhost:4221/api/values/getpiglist";
        //2.利用C#模拟浏览器发出请求
        WebRequest request = WebRequest.Create(url);
        //2.1设置请求方式,如果不设置则默认为get
        request.Method = "get";
        //3.获取响应报文
        WebResponse response = request.GetResponse();
        //4.获取相应报文体的字节数据byte[]
        System.IO.Stream responseBody = response.GetResponseStream();
        //5.将字节数据转换为字符串
        using(StreamReader sr=new StreamReader(responseBody))
        {
            //5.1将相应报文体转换为json字符串
            string responseBodyText = sr.ReadToEnd();
            //5.2利用json序列化器将json字符串反序列化为list集合
            System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer();
            List<Entity> list = jss.Deserialize(responseBodyText, typeof(List<Entity>)) as List<Entity>;
            GridView1.DataSource = list;
            GridView1.DataBind();
        }
  5. 动态页面转静态

     1 private void MakeStaticPage(string url)
     2 {
     3 string txtHtml = "";
     4 string fileName = Guid.NewGuid().ToString() + ".html";
     5 //1.C#模拟浏览器发出请求
     6 WebRequest Request = WebRequest.Create(url);
     7 //2.获取Response对象
     8 WebResponse response = Request.GetResponse();
     9 //3.根据响应报文获取字节流
    10 Stream stream = response.GetResponseStream();
    11 //4.字节流转换为html文本,并存储到相应文本中
    12 using (StreamReader sr = new StreamReader(stream))
    13 {
    14 txtHtml = sr.ReadToEnd();
    15 File.WriteAllText(Server.MapPath("/staticPage/" + fileName), txtHtml);
    16 }
    17 Response.Write("<script>alert('静态化成功 !');</script>");
    18 }

     

三、MVC插件系统

转载于:https://www.cnblogs.com/notniu/p/3898001.html

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

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

相关文章

帮 C/C++ 程序员彻底了解链接器

为什么80%的码农都做不了架构师&#xff1f;>>> http://blog.jobbole.com/96225/ 转载于:https://my.oschina.net/lieefu/blog/547083

12306订票助手java_12306订票助手

权限信息 com.android.alarm.permission.SET_ALARM 读取日历活动和机密信息 添加或修改日历活动&#xff0c;并在所有者不知情的情况下向邀请对象发送电子邮件 完全的网络访问权限 查看网络连接 查看WLAN连接 读取您的USB存储设备中的内容 修改或删除您的USB存储设备中的内容 a…

linux安装软件包(pip, distribute, nose, virtualenv)

一、 先安装pip 1. 先去python官网下载pip&#xff0c;网站&#xff1a;https://pypi.python.org/pypi/pip#downloads&#xff0c;点击下图中的“download” 2. 然后选择下图标注的包&#xff0c;链接可以通过f12获取&#xff0c;具体如下&#xff1a; 3. 然后再linux终端输入&…

event对象获取方法

为什么80%的码农都做不了架构师&#xff1f;>>> http://www.jb51.net/article/42691.htm 转载于:https://my.oschina.net/zxin/blog/547902

【iOS开发每日小笔记(一)】UIPickerView 自动选择某个component的某个row

这篇文章是我的【iOS开发每日小笔记】系列中的一片&#xff0c;记录的是今天在开发工作中遇到的&#xff0c;可以用很短的文章或很小的demo演示解释出来的小心得小技巧。它们可能会给用户体验、代码效率得到一些提升&#xff0c;或是之前自己没有接触过的技术&#xff0c;很开心…

在Hadoop上运行基于RMM中文分词算法的MapReduce程序

原文&#xff1a;http://xiaoxia.org/2011/12/18/map-reduce-program-of-rmm-word-count-on-hadoop/ 在Hadoop上运行基于RMM中文分词算法的MapReduce程序 23条回复我知道这个文章标题很“学术”化&#xff0c;很俗&#xff0c;让人看起来是一篇很牛B或者很装逼的论文&#xff0…

Web服务的调用

1、创建服务引用 例如&#xff1a;天气预报 2、在代码添加引用空间 TvProgram.ChinaTVprogramWebService tpnew TvProgram.ChinaTVprogramWebService(); DataSet dstp.getAreaDataSet();3、引用具体方法 private void comBox1_SelectedIndexChanged(object sender,EventArgs e)…

aref无效 lisp_aref无效 lisp_Common Lisp专题4:数组

1)用make-array创建数组&#xff1a;CL-USER> (make-array 5 :initial-element nil)#(NIL NIL NIL NIL NIL)CL-USER> (make-array 5 :initial-contents (a e i o u))#(A E I O U)CL-USER> (setf arr (make-array 5 :initial-contents (a e i o u)))#(A E I O U)CL-USE…

Visual Studio 快捷键汇总

常见方法&#xff1a; 强迫智能感知&#xff1a;CtrlJ。智能感知是Visual Studio最大的亮点之一&#xff0c;选择Visual Studio恐怕不会没有这个原因。 撤销&#xff1a;CtrlZ。除非你是天才&#xff0c;那么这个快捷键也是最常用的。强迫显示参数信息&#xff1a;Ctrl-Shift-空…

nodejs解析apk

项目再github上的目录&#xff1a;https://github.com/chen2009277025/nodejs_apkToolnodejs无可厚非是新兴的后端语言&#xff0c;因为他的开发语言是javascript&#xff0c;javascript语言的自身优势&#xff0c;让nodejs迅速的火遍大江南北。很多的nodejs的开发插件如雨后春…

VC2013 代码图,依赖项关系图,等出错解决办法.

环境WIN10VS2013SQL2015 当VS2013代码图,依赖项关系图等出现 数据库连接错误时 去http://www.microsoft.com/zh-cn/download/details.aspx?id29062 下载 SqlLocalDB.MSI进行安装 怀疑是先装了SQL2015后安装VS2013时默认未安装SqlLocalDB.MSI导致.转载于:https://www.cnblogs.c…

POJ 1330 LCA最近公共祖先 离线tarjan算法

题意要求一棵树上&#xff0c;两个点的最近公共祖先 即LCA 现学了一下LCA-Tarjan算法&#xff0c;还挺好理解的&#xff0c;这是个离线的算法&#xff0c;先把询问存贮起来&#xff0c;在一遍dfs过程中&#xff0c;找到了对应的询问点&#xff0c;即可输出 原理用了并查集和dfs…

deferred Transports Protocols 简单介绍

2019独角兽企业重金招聘Python工程师标准>>> Twisted架构概览 Twisted是一个事件驱动型的网络引擎。由于事件驱动编程模型在Twisted的设计哲学中占有重要的地位&#xff0c;因此这里有必要花点时间来回顾一下究竟事件驱动意味着什么。 事件驱动编程是一种编程范式&a…

java web 请求跟踪_IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie技术

原标题&#xff1a;IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie技术Cookie使用HTTPHeader传递数据。Cookie机制定义了两种报头&#xff0c;Set-Cookie报头和Cookie报头。Set-Cookie报头包含于Web服务器的响应头(ResponseHeader)中&#xff0c;Cookie报头包含在浏览器客户端请…

FAT和EXFAT文件系统

源&#xff1a;FAT和EXFAT文件系统转载于:https://www.cnblogs.com/LittleTiger/p/8022450.html

关于easyUI在子页面增加显示tabs的一个问题

关于easyUI在子 在父页面点个链接能动态看到子页面的情况太简单&#xff0c;请看easyUI官网&#xff1a;http://www.jeasyui.com/tutorial/layout/tabs2.php 现在说的是在子页面点个按钮也能触发增加子页面的情况。 情景是&#xff0c;在父页面上有个div如&#xff1a; Html代…

java 两个窗口 贴_粘贴子窗体中的多个记录时的子窗体校准错误

我对子窗体上的所有三个事件进行计算以更新主窗体&#xff1a;Private Sub Form_AfterDelConfirm(Status As Integer)Me.Parent.UpdateStundenEnd SubPrivate Sub Form_AfterInsert()Me.Parent.UpdateStundenEnd SubPrivate Sub Form_AfterUpdate()Me.Parent.UpdateStundenEnd …

SDN第二次上机作业

1、安装floodlight 2、生成拓扑并连接控制器floodlight&#xff0c;利用控制器floodlight查看图形拓扑 3、利用字符界面下发流表&#xff0c;使得‘h1’和‘h2’ ping 不通 4、利用字符界面下发流表&#xff0c;通过测试‘h1’和‘h3’的联通性&#xff0c;来验证openflow的har…

Android保存图片到本地相册

好久没有写东西了。备份下知识吧。免得忘记了 。 首先贴一段代码 &#xff0d;&#xff0d; 这个是先生成一个本地的路径&#xff0c;将图片保存到这个文件中&#xff0c;然后扫描下sd卡。让系统相册重新加载下 。缺点就是只能保存到DCIM的文 件夹下边&#xff0c;暂时不知道怎…

PHP的钩子实现解析

2019独角兽企业重金招聘Python工程师标准>>> 钩子是编程里一个常见概念&#xff0c;非常的重要。它使得系统变得非常容易拓展&#xff0c;&#xff08;而不用理解其内部的实现机理&#xff0c;这样可以减少很多工作量&#xff09;。只要有一个钩子样本&#xff0c;能…