WebAPI
文章平均质量分 87
苍狼_2001
程序员之所以犯错误,不是因为他们不懂,而是因为他们自以为什么都懂。
展开
-
ASP.NET WebApi 自带Json返回日期带T无法格式化的问题
WebApi自带json序列化对遇到时间日期字段的时候,到前端获取的格式总是为“ 2016-07-14T15:32:44”,中间总是会带一个T,显然不是很友好。先是偷懒在园子里边去找一些解决方案,尝试了一下,然并卵。于是,自己想办法。 1.先是查看ApiController.JsonResults的源码 其实J转载 2017-04-25 14:29:11 · 1196 阅读 · 0 评论 -
FromUri参数自动解析成实体的要求
关于webapi我之前写了一些文章,大家可以根据目录去浏览,今天要说的是个怪问题,也是被我忽略的一个问题,当你的Url参数需要被Api自动解析成实体的属性,实事上是要有条件的,不是所以属性都可以被自动赋值的,下面我们就来看看先决条件:条件一:类属性名称必须和参数名称相同条件二:API参数必须以[FromUri]来修饰条件三:属性类型为“类”的,如果使用类名(导航属性在本类的转载 2017-09-04 18:39:15 · 735 阅读 · 0 评论 -
Http报头Accept与Content-Type的区别
1.Accept属于请求头, Content-Type属于实体头。 Http报头分为通用报头,请求报头,响应报头和实体报头。 请求方的http报头结构:通用报头|请求报头|实体报头 响应方的http报头结构:通用报头|响应报头|实体报头2.Accept代表发送端(客户端)希望接受的数据类型。 比如:Accept:text/xml; 代表客户端希望接受的数据类型是xml类原创 2017-09-05 15:04:59 · 195 阅读 · 0 评论 -
WebApi系列~开放的CORS,跨域资源访问对所有人开放
之前有客户问我,如何AJAX跨域post,这个问题挺有意思,在我们看来,我是不被允许的,因为它是不安全的,但随着web api的火热,这个东西也被人们一步步的接受了,确实,有时,我们的接口希望对所有人公开,它并不在乎有人恶意去POST灌数据,呵呵!实现思路:向HTTP请求头添加跨域标识Access-Control-Allow-Origin,将它的值设为*即可,当然如果你一个个页面去加那就太转载 2017-09-06 11:07:37 · 298 阅读 · 0 评论 -
C# WebApi 上传文件
public class FileUploadController : ApiController 2 { 3 4 public async Task Post() 5 { 6 // 检查是否是 multipart/form-data 7 if (!Request.Content.IsMimeMu转载 2017-08-30 18:31:28 · 1184 阅读 · 0 评论 -
WebApi发送HTML表单数据:文件上传与多部分MIME
第2部分:文件上传与多部分MIMEThis tutorial shows how to upload files to a web API. It also describes how to process multipart MIME data.本教程演示如何对Web API上传文件。也描述如何处理多部分MIME数据。Download the completed projec转载 2017-08-30 18:32:44 · 524 阅读 · 0 评论 -
Asp.Net WebAPI中Filter过滤器的使用以及执行顺序
转发自:http://www.cnblogs.com/UliiAn/p/5402146.html在WEB Api中,引入了面向切面编程(AOP)的思想,在某些特定的位置可以插入特定的Filter进行过程拦截处理。引入了这一机制可以更好地践行DRY(Don’t Repeat Yourself)思想,通过Filter能统一地对一些通用逻辑进行处理,如:权限校验、参数加解密、参数校验等方面我们都转载 2017-09-06 18:25:21 · 2912 阅读 · 0 评论 -
在WebApi2中使用模型验证
很多时候我们在接收到客户端提交过来的请求之前,要验证一下数据合法性再执行操作。 数据注解Data Annotations 在WepApi中可以使用System.ComponentModel.DataAnnotations命名空间的属性,在你的model类中设置属性,来实现验证。考虑以下场景:using System.ComponentModel.Dat原创 2017-09-08 13:11:36 · 774 阅读 · 0 评论 -
WebApi系列~安全校验中的防篡改和防复用
web api越来越火,因为它的跨平台,因为它的简单,因为它支持xml,json等流行的数据协议,我们在开发基于面向服务的API时,有个问题一直在困扰着我们,那就是数据的安全,请求的安全,一般所说的安全也无非就是请求的防篡改和请求的防复用,例如,你向API发一个查询用户账户的请求,在这个过程中,你可能要传递用户ID,用户所在项目ID等,而现在拦截工具如此盛行,很容易就可以把它的请求拦截,然后篡改,转载 2017-09-08 18:37:43 · 1436 阅读 · 0 评论 -
WebApi 路由机制剖析:你准备好了吗?
一、MVC和WebApi路由机制比较回到顶部1、MVC里面的路由在MVC里面,默认路由机制是通过url路径去匹配对应的action方法,比如/Home/GetUser这个url,就表示匹配Home这个Controller下面的GetUser方法,这个很好理解,因为在MVC里面定义了一个默认路由,在App_Start文件夹下面有一个RouteConfig.cs文件转载 2018-01-16 10:29:21 · 320 阅读 · 1 评论 -
WebApi 异常处理解决方案
一、使用异常筛选器捕获所有异常我们知道,一般情况下,WebApi作为服务使用,每次客户端发送http请求到我们的WebApi服务里面,服务端得到结果输出response到客户端。这个过程中,一旦服务端发生异常,会统一向客户端返回500的错误。 [HttpGet] public string GetAllChargingData([FromUri]TB_原创 2018-01-16 10:41:33 · 1332 阅读 · 0 评论 -
三种查询IP归属地的接口
1.淘宝:同个IP不能连续查询,需要时间间隔http://ip.taobao.com/service/getIpInfo.php?ip=2.新浪:无时间间隔限制http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=3.国外:归属地为英文http://原创 2018-02-01 10:11:24 · 1973 阅读 · 0 评论 -
使用ActionFilterAttribute 记录 WebApi Action 请求和返回结果记录
在asp.net mvc 中 webapi 和 mvc 处理消息是两个不同的管道,Asp.net mvc 和 webapi 为我们提供的 ActionFilterAttribute 拦截器,通过 重写 OnActionExecutingAsync,来 拦截action的请求消息,当执行OnActionExecutingAsync完成以后才真正进入请求的action中,action运行完后又把控制权转载 2018-02-07 12:27:11 · 4243 阅读 · 0 评论 -
认证模式之Basic模式
HTTP协议规范中有两种认证方式,一种是Basic认证,另外一种是Digest认证,这两种方式都属于无状态认证方式,所谓无状态即服务端都不会在会话中记录相关信息,客户端每次访问都需要将用户名和密码放置报文一同发送给服务端,但这并不表示你在浏览器中每次访问都要自己输入用户名和密码,可能是你第一次输入账号后浏览器就保留在内存中供后面的交互使用。先看下HTTP协议的Basic认证模式。既然是HT原创 2018-02-07 13:50:29 · 394 阅读 · 0 评论 -
WebApi接口 - 响应输出xml和json
格式化数据这东西,主要看需要的运用场景,今天和大家分享的是webapi格式化数据,这里面的例子主要是输出json和xml的格式数据,测试用例很接近实际常用情况;希望大家喜欢,也希望各位多多扫码支持和点赞谢谢: . 自定义一个Action,响应输出集合数据. api返回json数据的两种方式. json时间格式处理方式. 让api接口支持返回json和xml数据 下面一步一个脚印的来分享:. 自定义...转载 2018-05-30 16:22:28 · 1004 阅读 · 0 评论 -
StringContent参数需要添加MetaType对象
对于api调用已经很多见了,在客户端去post一个请求到API服务端也是经常见到,但有时不注意,可能会引起一些问题,如为一个HttpContent参数进行赋值时,如果使用StringContent这个派生类,则需要显示声明一下mediatype,否则请求会出现415的错误。之后找了一些资料,也算有了结果,就是为httpclient时,指定它的mediatype即可再转载 2017-09-04 18:35:46 · 2017 阅读 · 0 评论 -
StringContent与FormUrlEncodedContent
本文是一个很另类的文章,在项目中用的比较少,但如果项目中真的出现了这种情况,我们也需要知道如何去解决,对于知识点StringContent和FormUrlEncodedContent我们应该了解的多一点,FormUrlEncodedContent是以键/值对的形式进行POST数据的提供,同时要求服务端以x-www-form-urlencoded的方式去接收数据!而StringContent是Byt转载 2017-09-04 18:34:43 · 8712 阅读 · 0 评论 -
.NET/C#发起GET和POST请求的几种方法
using System.Net;GET: 123var request = (HttpWebRequest)WebRequest.Create("http://www.leadnt.com/recepticle.aspx");var response = (HttpWebResponse)re原创 2017-08-08 17:09:31 · 9786 阅读 · 1 评论 -
webapi接收上传的文件和相关参数
[HttpPost] public IHttpActionResult TestPostFile() { string name = HttpContext.Current.Request["name"]; string age = HttpContext.Current.Request["age"];原创 2017-02-24 17:00:41 · 8470 阅读 · 3 评论 -
Webapi传参数
一、Get请求1、传一个基础类型参数[HttpGet] public IHttpActionResult TestGetOnePara(string name) { return Json(new { ParaVal = name, ParaDes = "Get方法传一个参数" }); }2、传多个基础参原创 2017-02-24 14:00:53 · 529 阅读 · 0 评论 -
WebApi 身份认证解决方案:Basic基础认证
一、为什么需要身份认证在前言里面,我们说了,如果没有启用身份认证,那么任何匿名用户只要知道了我们服务的url,就能随意访问我们的服务接口,从而访问或修改数据库。1、我们不加身份认证,匿名用户可以直接通过url随意访问接口: 可以看到,匿名用户直接通过url就能访问我们的数据接口,最终会发生什么事,大家可以随意畅想。2、增加了身份认证之后,只有转载 2017-02-17 18:16:28 · 647 阅读 · 0 评论 -
ASP.NET Web API 实现客户端Basic(基本)认证 之简单实现
优点是逻辑简单明了、设置简单。缺点显而易见,即使是BASE64后也是可见的明文,很容易被破解、非法利用,使用HTTPS是一个解决方案。还有就是HTTP是无状态的,同一客户端每次都需要验证。 实现:客户端在用户输入用户名及密码后,将用户名及密码以BASE64加密,加密后的密文将附加于请求信息中,如当用户名为Parry,密码为123456时,客户端将用户名和密码原创 2017-02-17 18:14:33 · 2899 阅读 · 1 评论 -
WebApi 接口返回值不困惑:返回值类型详解
使用过Webapi的园友应该都知道,Webapi的接口返回值主要有四种类型void无返回值IHttpActionResultHttpResponseMessage自定义类型此篇就围绕这四块分别来看看它们的使用。回到顶部一、void无返回值void关键字我们都不陌生,它申明方法没有返回值。它的使用也很简单,我们来看一个示例就能明白。 publi转载 2017-02-17 11:35:02 · 3319 阅读 · 2 评论 -
webAPI 自动生成帮助文档
之前在项目中有用到webapi对外提供接口,发现在项目中有根据webapi的方法和注释自动生成帮助文档,还可以测试webapi方法,功能很是强大,现拿出来与大家分享一下。先看一下生成的webapi文档。1、下图展示的是生成帮助文档首页面,其中Values是controller,API下面的列表展示出请求的http方法(Get,POST等),请求的action,方法的描述。自转载 2017-02-17 09:44:17 · 2178 阅读 · 1 评论 -
Webservice 安全性访问
1.访问安全性 WebService对于我们来说并不陌生,在很多地方我们都会使用到它,它为我们带来了很多方便,同时解决了多平台之间的通讯协议问题等等,因为WebService是以一种Http请求和Xml响应的方式来达成多平台之间的接入。这种方式我们一般称之为‘接口’。这里需要说明的是:所谓平台是指开发平台(例如ASP.NET和Java等开发平台)和站点平台(例如淘宝网站和支付宝网站)。就原创 2012-06-25 11:25:35 · 514 阅读 · 1 评论 -
WebApi特性路由和路由前缀
特性路由WebApi2默认的路由规则我们称作基于约定路由,很多时候我们使用RESTful风格的URI.简单的路由是没问题的,如 api/Products/{id},但有些事很难处理的,如资源之间存在嵌套关系:客户包含订单,书有作者属性等等。对于这种Uri,我们希望的路由是这样的:/costomers/{customerid}/orders 或 /costomers/{customerid}原创 2017-07-02 23:01:00 · 4870 阅读 · 2 评论 -
Webapi跨域
一、跨域问题的由来同源策略:出于安全考虑,浏览器会限制脚本中发起的跨站请求,浏览器要求JavaScript或Cookie只能访问同域下的内容。正是由于这个原因,我们不同项目之间的调用就会被浏览器阻止。比如我们最常见的场景:WebApi作为数据服务层,它是一个单独的项目,我们的MVC项目作为Web的显示层,这个时候我们的MVC里面就需要调用WebApi里面的接口取数据展现在页面上。因原创 2017-07-02 23:14:09 · 451 阅读 · 1 评论 -
webApi——启用 session
默认webapi 不开启 session 会话支持所以需要修改配置,手动在 Global 开启 session 支持 1.重写 init() 方法 2.开启session支持Global.asaxusing System;using System.Collections.Generic;using System.Linq;using System.Web;usi原创 2017-07-02 23:20:29 · 429 阅读 · 0 评论 -
WebApi接口传参不再困惑:传参详解
WebApi目录(?)[-]一get请求基础类型参数实体作为参数数组作为参数怪异的get请求1WebApi的方法名称以get开头2WebApi的方法名称不以get开头二post请求基础类型参数1错误的写法1错误写法2正确用法3推荐用法三put请求基础类型参数实体作为参数数组作为参数四delete请求五总结转载 2017-07-14 18:02:18 · 724 阅读 · 0 评论 -
四种常见的 POST 提交数据方式对应的content-type取值
application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。请求类似于下面这样(无关的请求头在本文中都省略掉了): POST http://www.example.com HTTP...转载 2019-01-08 16:43:06 · 915 阅读 · 0 评论