首页
学习
活动
专区
圈层
工具
发布

WebAPI下的如何实现参数绑定

本文将概述在WebAPI方式下将如何将参数绑定到一个action方法,包括参数是如何被读取,一系列规则决定特定环境采用的那种绑定方式,文章最后将给出一些实际的例子。...WebAPI从HttpConfiguration中获取一个formatters的列表,然后通过request信息 中的content-type来判断采用具体合适的formatter。...WebAPI有不少默认的formatters。默认的JSON formatter是JSON.NET。还有Xml formatter和采用JQuery语法的 FormUrl formatter。...Stream是请求信息的content stream。Read方法将读取stream,将其实例化为一个对象,然后返回它。 HttpContentType来自请求信息。...这意味着MVC的参数绑定可以反复从body中查找参数片断。然而,在WebAPI中,请求主体(HttpContent) 只能被读取一次,不被缓存,只能向前读取的流。

1.9K60

C#进阶系列——WebApi 接口参数不再困惑:传参详解上

1、基础类型参数 post请求的基础类型的参数和get请求有点不一样,我们知道get请求的参数是通过url来传递的,而post请求则是通过http的请求体中传过来的,WebApi的post请求也需要从...看到如下说明: application/x-www-form-urlencoded : 中默认的encType,form表单数据被编码为key/value格式发送到服务器...(表单默认的提交数据的格式); application/json : JSON数据格式 也就是说post请求默认是将表单里面的数据的key/value形式发送到服务,而我们的服务器只需要有对应的key...按照这个逻辑,那我们如果指定contentType为application/json,然后传递序列化过的对象应该也是可以的啊。...如果你指定了contentType为application/json,则必须要传递序列化过的对象;如果使用post请求的默认参数类型,则前端直接传递json类型的对象即可。

7.1K90
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    通过扩展让ASP.NET Web API支持JSONP

    同源策略以及跨域资源共享在大部分情况下针对的是Ajax请求。同源策略主要限制了通过XMLHttpRequest实现的Ajax请求,如果请求的是一个“异源”地址,浏览器将不允许读取返回的内容。...一、JsonpMediaTypeFormatter 在《[CORS:跨域资源共享] 同源策略与JSONP》,我们是在具体的Action方法中将返回的JSON对象“填充”到JavaScript回调函数中,...在重写的方法WriteToStreamAsync中,对于非JSONP调用(回调函数不存在),我们直接调用基类的同名方法对响应对象实施针对JSON的序列化,否则调用WriteToStream方法将对象序列化后的...JSON字符串填充到JavaScript回调函数中。...可以看到请求的URL中通过查询字符串“callback”提供了JavaScript回调函数的名称,而响应的主体部分不是单纯的JSON对象,而是将JSON对象填充到回调返回中而生成的一个函数调用语句。

    2K80

    Asp.Net WebApi核心对象解析(一)

    (支持浏览器以及任何其它HTTP客户端容易支持的格式,例如json,xml等数据格式)       (4).支持浏览器友好的认证方式。    ...在ASP.NET Web API中,一个控制器是处理HTTP请求的类。控制器的公共方法被称为动作方法或简单的动作。当Web API框架接收到一个请求,它请求路由到一个动作。...(2).查找的动作,网络API着眼于HTTP方法,然后寻找一个动作名称以该HTTP方法名。例如,用GET请求,WebAPI查找与“获取...”...(HTTP响应body的数据格式可以客户端和服务器进行协商,默认为json格式,对于json格式的好处,在这里就不做介绍,但是个人觉得json格式应该会成为以后数据格式的重心。)   ...,HttpControllerContext表示一个HTTP请求对象,CancellationToken表示一个传递一个消息,为HTTP操作分配的取消令牌,Task<HttpResponseMessage

    5.6K70

    ASP.NET (Core)WebApi参数传递实操演练

    例如在 ajax 中你要传一个复杂的 json 对像,也就说是对象嵌数组,数组中包括对象,如果你这样传: {data: {a: [{x:2}] }} 这个复杂对象, application/x-www-form-urlencoded...这种形式是没有办法将复杂的 JSON 组织成键值对形式(当然也有方案这点可以参考) ,你传进去可以发送请求,但是服务端收到数据为空, 因为 ajax 没有办法知道怎样处理这个数据。...请求Body(Body):通过在POST请求中将数据传入到Body中此时将绑定如上述Person对象中。 请求Header(Header):绑定数据到Http中的请求头中,这种相对来说比较少见。...请求Body(Body):通过在POST请求中将数据传入到Body中此时将绑定如上述Person对象中,对应WebAPI中媒体类型格式化器 FormUrlEncodedMediaTypeFormatter...URL中读取数据,这里的值提供程序是NameValuePairsValueProvider类,该类实现IValueProvider接口来获取键值对中的数据。

    4.7K20

    微信公众号制作旅行足迹

    ; exit(); 前端渲染 这里在读取JSON时,由于谷歌浏览器默认不允许用Ajax读取客户端本地的文件C:\xxx,所以本地测试时需要搭建服务器或配置Chrome启动参数 --allow-file-access-from-files...先用XMLHttpRequest对象进行读取本地JSON文件,再用JSON.parse()解析 读取本地JSON // 读取JSON var data = new Array();...因此需要遍历citys并将其中的数据存储到data数组 点击打开 # 原本的数据格式 [ {"lnglat":[104.065735,30.659462],"name":"成都市","date...()返回的数据格式 [ 0: {lnglat: Array(2), name: "成都市", "date":"1970-01-01"} 1: {lnglat: Array(2), name...每个公众号使用的语言和配置都不同,关键是可以获取到数据并写入JSON文件中。这里仅作参考 此处内容需要评论回复后(审核通过)方可阅读。 ----

    2K20

    C#进阶系列——WebApi 接口参数不再困惑:传参详解 下

    4、后台发送请求参数的传递 上面写了那么多,都是通过前端的ajax请求去做的,我们知道,如果调用方不是web项目,比如Android客户端,可能需要从后台发送http请求来调用我们的接口方法,如果我们通过后台去发送请求是否也是可行的呢...我们以实体对象作为参数来传递写写代码试一把。     ...三、put请求 WebApi里面put请求一般用于对象的更新。它和用法和post请求基本相同。同样支持[FromBody],同样可以使用dynamic。...五、总结 以上比较详细的总结了WebApi各种请求的各种参数传递。...每种情况都是博主实际代码测试过的,内容不难,但如果刚接触这么些东西还是需要一点时间去熟悉的,在此做个总结,希望能帮到刚刚接触WebApi的园友们。

    1.9K60

    使用 Excel和 Python从互联网获取数据

    互联网上有极其丰富的数据资源可以使用。使用Excel可以自动读取部分网页中的表格数据,使用Python编写爬虫程序可以读取网页的内容。...类是HTTP请求的资源的基类 from flask_restplus import Resource # fields类用于定义数据的类型和格式 from flask_restplus import...通过命令“python ./5-5-WebAPI.py”启动Web API服务,在浏览器中输入“http://127.0.0.1:8000/” 将出现如图5-23所示的Web API服务请求方法列表。...图2 WebAPI服务请求方法列表 2,抓取用网页数据 Excel可以通过“数据”选项卡下的“自网站”功能抓取网页数据。...调用Web API服务后数据以JSON格式返回,按照5.4.3小节中介绍的方法处理JSON数据。

    5.5K20

    用flask自建网站测试python和excel爬虫

    类是HTTP请求的资源的基类 from flask_restplus import Resource # fields类用于定义数据的类型和格式 from flask_restplus import...通过命令“python ./5-5-WebAPI.py”启动Web API服务,在浏览器中输入“http://127.0.0.1:8000/” 将出现如图5-23所示的Web API服务请求方法列表。...图2 WebAPI服务请求方法列表 2,抓取用网页数据 Excel可以通过“数据”选项卡下的“自网站”功能抓取网页数据。...图3 配置要读取网站的URL (4)在“导航器”窗口中选择导入数据。 如图4所示,Excel自动识别网页中的表格数据,选择表名后单击“加载”按钮即可。...调用Web API服务后数据以JSON格式返回,按照5.4.3小节中介绍的方法处理JSON数据。

    2.8K10

    ASP.NET MVC5+EF6+EasyUI 后台管理系统(65)-MVC WebApi 用户验证 (1)

    1.WebApi服务端接收访问请求,需要做安全验证处理,验证处理步骤具体如下: 1) 如果是合法的Http请求,在Http请求头中会有用户身份的票据信息(如果是跨域那么无法在请求头中添加票据),服务端会读取票据信息...登录及权限验证流程 1) 用户打开浏览器,并在地址栏中输入页面请求地址,提交; 2) 浏览器解析Http请求,发送到Web服务器;Web服务器验证用户请求,首先判断是否有登录的票据信息; 3) 用户没有登录票据信息...,读取存储在数据库中的用户资料,判断密码是否匹配; 7.1)如果用户名和密码不匹配,则提示密码错误等信息,然该用户重新填写登录资料; 7.2)如果验证通过,则保存用户票据信息; 8) 3.如果用户有登录票据信息...12). api业务服务处理业务逻辑,并将结果以Json 数据返回; 13). 返回渲染后的页面给浏览器前端,并呈现业务数据到页面; 14). 用户填写业务数据,或者查找业务数据; 15)....访问成功,但是没有返回值,jquery显示jquery的jsonp格式有callback返回 设置Ajax的dataType 为Jsonp dataType:"jsonp", 再次运行,带回来的值正常

    2.1K50

    C#净化版WebApi框架

    而这样杂乱的起始项目,对于我们这种有精神洁癖的开发者而言,简直是折磨。 所以,让我们编写一个简洁版本的WebApi来净化世界吧。 净化版WebApi预览 首先,我们先看下净化版WebApi的结构。...; // 对 JSON 数据使用混合大小写。...我们在其中创建了静态注册方法Register,在方法内,我们主要在做一件事,那就是为HttpConfiguration对象做配置。...而在配置中,我们将WepApi的路由配置成了webapi/{controller}/{id},也就是说,我们的WebApi未来的访问地址将为【http://localhost:5180/webapi/Login...在WebApiConfig类中,我们还用到了这样一个类WebApiAttribute,我们在为HttpConfiguration对象的Filters属性,添加了这个类的对象。

    2.1K21

    快速入门系列--WebAPI--04在老版本MVC4下的调整

    媒体格式化器,也是我们在WebAPi最常用的,再次提醒一下,一定要提供contentType哦,比如"application/json"。...这儿强烈提醒的是dataType表示返回值类型,contentType为请求体的类型,熊二你个二货,内容协商是必须的,不然别人哪知道怎么做!...此外,这个的dataType='json'最终反应到http请求体中为Accept: application/json, 这个对于你使用过滤器拦截并新建httpMessageResponse的HttpContent...就会调用异常过滤器,可以检查异常,并采取一些操作,例如记录日志、提供新的响应对象来处理异常等 Tip: 在MVC4中,推荐使用同步基类,在以后的版本中推荐使用异步接口对应用程序进行扩展。...其他小知识点 WebAPI的托管,包括通过System.Web.Http.WebHost.dll的IIS托管,配置对象为GlobalConfiguration;自托管的配置,通过Mocrosoft.AspNet.WebApi.Selfhost

    1.5K60

    同源策略与JSONP

    同源策略主要限制了通过XMLHttpRequest实现的Ajax请求,如果请求的是一个“异源”地址,浏览器将不允许读取返回的内容,我们可以通过一个简单的实例来演示这一点。...由于具体返回的数据类型为JsonResult>,所以联系人 列表以JSON格式被序列化。...如果我们采用Fiddler来监测页面加载过程中发送的请求和接收到的响应,我们会发现针对Web API调用的Ajax请求被成功发送,并且以JSON格式表示的联系人列表会被成功接收,请求和响应的内容如下所示...这种将JSON对象填充(Padding)到某个JavaScript回调方法将数据转换成针对数据的操作语句的形式就是JSONP(JSON Padding)。...在该方法中,我们利用JavaScriptSerializer对Contact列表对象进行序列化,并将得到的内容填充到回调函数中从而得到如上所示的内容。

    1.5K100

    .NET MVC第八章、Web Api 跨域接口

    Web Api,取消【为HTTPS】配置,如果选了的话操作的时候会比较麻烦。...WebApi项目启动 主页中的API选项 这里选择get请求的api/values help下面的api/values对应结果 这个不是我们想要的,那么我们单独访问一下ip:port/api/values...http://localhost:1246/api/Values 返回的是XML格式数据 能看到默认返回的是XML格式的数据,这个是比较麻烦的,不是我们需要的数据格式,我们需要json数据,故而要进行一定的修改...ASP.NET MVC WEB API操作 由于WebApi的单独的一个项目,它的默认配置不太合适咱们使用,我们要对默认设置做一些调整。...(); 重新启动服务,访问http://localhost:1246/api/Values进行二次请求测试 发现数据已经从XML格式编程字符串格式,但是我们的方式 2、修改访问路径 由于我们要根据请求头来判断请求的具体函数

    85820

    WebAPI返回数据类型解惑 以及怎样解决Extjs无法解析返回的xml

    2.怎么修改WebAPI的返回数据类型,我用IE浏览器请 求返回的数据都是JSON格式的,用Firefox和Chrome返回数据格式是XML,然后自己用HttpWebRequest请求返回的是JSON格...IE浏览器返回的数据是json,而使用Firefox和Chrome返回的则为xml,经研究发现IE在发生http请求时请求头accpet节点相比Firefox和Chrome缺少"application/...xml" 类型,由于WebAPI返回数据为xml或json格式,IE没有发送可接受xml和json类型,所以默认为json格式数据,而Firefox和 chrome则发送了可接受xml类型,故返回了xml...数据,下面是IE、Firefox和Chrome浏览器的请求头 浏览器 返回数据格式 accept请求头 IE json text/html, application/xhtml+xml, */* Firefox.../json;q=0.9,结果返回了xml 由此可以得出结论:   WebAPI的返回数据类型是有请求头的accept来决定的,默认返回类型为json     1.application/json和application

    2.5K80

    VB.NET WinForm自托管WebApi服务器(接上期的视频)

    UI 效果图(辣鸡图见谅)   本篇文章是接着上期的《VB.NET 结合 B4A 开发进行远程查图报共上传数据功能》的一个延展性,本期主要介绍 WebApi 自托管于 WinForm 程序上的对外作为数据服务接口的一个简单示例...想跟深入研究的大佬们自行度娘咯;本文只做个抛砖引玉; 一、首先添加.NET WebApi 的相关 DLL Microsoft.AspNet.WebApi.Client Microsoft.AspNet.WebApi.Core...Microsoft.AspNet.WebApi.SelfHost 下面图列是介绍在 NuGET 上安装相关 DLL 的图例 1.1、打开 nuget ?...compatibility.v1"> 2.4、点击启动按钮,编译一次程序,这时会提示以管理员凭证启动...三、开始敲代码了哦 3.1、首先编写我们的 WebApi 服务托管对象,见下面代码 ''' ''' WebApi服务类 ''' Public Class

    2.4K40
    领券