欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 编程语言 > asp.net >内容正文

asp.net

聊聊asp.net中web api的使用 -凯发k8官方网

发布时间:2025/1/21 asp.net 23 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 聊聊asp.net中web api的使用 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

    随着app应用的崛起,后端服务开发的也越来越多,除了很多优秀的nodejs框架之外,微软当然也会在这个方面提供更便捷的开发方式。这是微软一贯的作风,如果从开发的便捷性来说的话微软是当之无愧的老大哥,只是鱼和熊掌不能兼得,各种语法糖带来开发的便利势必会牺牲程序运行的性能,这是无可避免的,通用和效率永远是需要程序员去取舍的话题。扯淡到这就完了,下来就聊聊今天的主角web api,web api 是mvc4.0之后出现的一种技术吧,他的创建和带来的便利我就不介绍了。这边文章主要聊聊,我对web api开发的一些理解。

 

frombody是一个修饰参数的特性,比如:public void post([frombody]string name),那么他的作用是什么呢,其实他的作用是查询post请求中参数为name的值。

要注意的是:[frombody]只能修饰单个参数,如果是多个参数的话,就要封装成对象进行数据专递了,比如:public void post([frombody]string name,[frombody]int id)是取不到值的,要把id和name封装成userinfo对象,使用 public void post([frombody]userinfo user)进行调用。

 

已经post请求需要使用[frombody]特性修饰符接收,但是frombody只能接收单个参数,如果需要传递不同对象的输出就比较麻烦了,新建实体对象成本太大,也不能完全适应适应的类型,这个时候需要使用jobject来处理,代码如下:

jquery.post("/api/userinfo/add/", {mobile: "18049579804",pwd: "123456",smscode: "12346",t: new date().gettime() }, function (data) {if (data) {document.writeln(data);} }); public string add([frombody]jobject pdata) {string mobile = convert.tostring(pdata["smscode"]);string pwd = convert.tostring(pdata["pwd"]);string smscode = convert.tostring(pdata["smscode"]); }

 

关键字区分:get请求或者post请求,可以用自身的关键字来区分,比如:getuser(int id)肯定为get请求,getxxx(params param)等格式为get请求,post同理。当然还有一种方式,是没有关键字修饰的方法,比如:finduser这种情况下,这种请求下默认是post请求的get请求就会报405的错。

 

这个会简单设置返回值为net自带的json格式即可,可以返回jobject或jarray都是可以用ajax接收json对象的。代码如下:

public jobject postfinduser([frombody]userinfo user) {jobject res = new jobject();res["name"] = string.format("{0}是好人~", user.name);return res; }

 

本身的路由不是很好,需要设置webapiconfig.cs配置为:控制/动作/参数

config.routes.maphttproute(name: "defaultapi",routetemplate: "api/{controller}/{action}/{id}",defaults: new { id = routeparameter.optional } );

 

 

 题外话:webapi获取http header信息代码:request.headers.getvalues("xxx")

 

 

 

 

总结

以上是凯发k8官方网为你收集整理的聊聊asp.net中web api的使用的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

网站地图