使用ActionFilterAttribute 记录 WebApi Action 请求和返回结果记录 C#进阶系列——WebApi 异常处理解决方案 [ASP.NET Web API教程]4.3 ASP.NET Web API中的异常处理 Web API 实战之 异常处理…
转自:https://www.cnblogs.com/hnsongbiao/p/7039666.html 需要demo在github中下载: https://github.com/shan333chao/WebApiTrackLogs 在asp.net mvc 中 webapi 和 mvc 处理消息是两个不同的管道,Asp.net mvc 和 webapi 为我们提供的 ActionFilterAttribute 拦截器,通过 重写 OnActionExecutingAsync,来 拦截acti…
问题:action中返回匿名对象时,swagger只能按强类型生成返回值描述 解决办法:使用roslyn在内存中动态执行代码,使用json.net反序列化匿名对象,向swagger返回动态匿名对象 效果: Swaager在描述控制器的方法时,可以使用以下方法 <response code="400">如果id为空</response> 或 [ProducesResponseType(typeof(ResponseT<User>), 200)] Ope…
刚才在博客园看了篇文章,http://www.cnblogs.com/cmt/p/csharp_regex_timeout.html  突然联想到以前遇到的问题,w3wp进程吃光CPU都挂起IIS进程,即使网站或者服务出现了问题,导致CPU百分之百,但是有时候我们根本不知道具体哪里出了问题!公司曾经一个项目组遇到过WCF服务端莫名其妙就CPU占用百分之百的情况,但是具体有查不到原因.我总结了下,查不到原因是因为没有合理的方法,根本不知道从何开始查.如果当时对客户端或者服务端方法调用都加上日志,估…
我们一般用日志记录每次Action的请求和响应,方便接口出错后排查,不过如果每个Action方法内都写操作日志太麻烦,而且客户端传递了错误JSON或XML,没法对应强类型参数,请求没法进入方法内, 把日志记录操作放在一个ActionFilter即可. [AttributeUsageAttribute(AttributeTargets.Method, Inherited = false, AllowMultiple = false)] public class ApiActionAttribute…
Asp.Net WebApi+JQuery Ajax的Post请求整理 一.总结 1.WebApi 默认支持Post提交处理,返回的结果为json对象,前台不需要手动反序列化处理.2.WebApi 接收Post提交参数需要指定([FromBody] string name)3.WebApi 中如果只接收一个基础类型参数,不能指定key的名称4.WebApi Post请求Action只能接收一个参数,也就是说一个Action中[FromBody]仅可指定一次5.WebApi Post请求处理多个参…
Asp.Net WebApi+JQuery Ajax的Get请求整理 一.总结 1.Asp.Net WebApi默认不支持Get请求,需要在Action方法上指定[HttpGet], 除非Action方法以‘Get’开头. 2.默认路由中,没有指定action,如果想路由到action不要手动指定3.WebApi返回值的json对象,使用$.get 接收返回值,不需要手动反序列化处理4.WebApi的Get请求中,Action可以接收多个参数 二.代码验证说明 1.默认不支持Get请求,需要在A…
博客部分代码来自其他博主,暂时找不到你的博文连接,如果您觉得我的代码中引入了您的代码或者文章,可在下方把您的博客文章写在下面,谢谢!!! WebApi有两种返回数据格式,一种是XML,一种是Json,在WebAPI中,你可以选择你自己喜欢的返回数据格式,在这里,我基本都是返回的是Json,基本上,使用WebApi 的时候,我都设置的是返回Json,我们美化接口,乃知全局,都将以Json格式显示出来! 这是 API 默认返回的XML格式,我们接下来美化一下! 一:新建一个空的WebApi项目 创建…
Query通过Ajax向PHP服务端发送请求并返回JSON数据 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据.本文将通过实例演示了jQuery通过Ajax向PHP服务端发送请求并返回JSON数据.阅读本文的读者应该具备jQuery.Ajax.PHP相关知识,并能熟练运用. JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.JSON在前后台交互的过程中…
http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发送设置的datatype设置为jsonp格式数据或json格式都可以.这篇文章对此进行了实例介绍,需要的朋友可以参考下 jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发送设置的datatype设置为jsonp格式数据或jso…
关于struts2中action请求会执行两次的问题     在struts2中发现,调用action中的方法,方法会被执行两次,后来发现调用的方法是get开头的,把它改为其他名称开头的后,就不会执行两次了.继续查找,发现调用的是返回json数据格式的action,如果是调用返回页面的action就不会有这种问题.     结合网上的搜索,总结了一下:         1.  json格式下, firefox中的yslow插件会发送第二个 HTTP GET 请求得到页面的信息..        …
ApiController 中的Action 命名已‘Get’开头,Post方法提交失败 场景: 1.action命名使用Get开头 /// <summary> /// 获取用户的未读消息数量 /// </summary> /// <returns></returns> public string GetMsgNoRead() { return new A_UserMessageHelper().GetCount_NoRead_User().ToString…
其实很多时候我们在做http请求数据返回的时候经常会莫名发现会出现乱码,大部分时候我们都觉得是编码不对造成的. 一般情况下正常我们默认都是作个很简单的操作,直接使用UTF-8编码基本问题就搞定了 HttpWebRequest request; request = (HttpWebRequest)WebRequest.Create(strURL); request.Method = "GET"; HttpWebResponse response; response = (HttpWebR…
ActionInvoker的作用是:根据请求数据(HttpPost,HttpGet等)和action名称,来激发响应的action,再由action渲染视图.本文通过自定义ActionInvoker,根据请求类型直接渲染视图. 控制器中有这样的一个Action: public ActionResult Demo()         {             return View();         } 当请求该action的时候,我们希望:如果是Get请求,我们直接渲染视图DemoGet.…
Strut2流程分析-----从请求到Action方法() 首先请求会调用strutsPrepareAndExcuteFliter----(这个就是我们在web.xml文件中所配置的那个拦截器吧,所有Action请求都要过这个拦截器)的doFilter()方法 然后会调用StrutsActionProxy类的excute()方法,生成一个代理类(ActionProxy) ActionProxy 是 Action 的一个代理类,也就是说Action的调用是通过 ActionProxy 实现的,就是…
视图解析,请求Controller返回的视图类型: @Controller @RequestMapping("/test") public class TestController { //正常返回ModelAndView @RequestMapping("/modelAndView") public ModelAndView retModelAndView(){ ModelAndView mv = new ModelAndView("hello"…
上一章讲了系统如何将客户端提交的请求数据格式化处理成我们想要的格式并绑定到对应的参数,本章讲一下它的“逆过程”,如何将请求结果按照客户端想要的格式返回去. 一.常见的返回类型 以系统模板默认生成的Home/Index这个Action来说,为什么当请求它的时候回返回一个Html页面呢?除了这之外,还有JSON.文本等类型,系统是如何处理这些不同的类型的呢? 首先来说几种常见的返回类型的例子,并用Fiddler请求这几个例子看一下结果,涉及到的一个名为Book的类,代码为: public class…
hello 各位小伙伴,国庆节终于过完啦,松哥也回来啦,今天开始咱们继续发干货! 关于 Spring Security,松哥之前发过多篇文章和大家聊聊这个安全框架的使用: 手把手带你入门 Spring Security! Spring Security 登录添加验证码 SpringSecurity 登录使用 JSON 格式数据 Spring Security 中的角色继承问题 Spring Security 中使用 JWT! Spring Security 结合 OAuth2 不过,今天要和小伙…
在编写导出功能使用action请求,在处理导出异常时期望跳转异常页,Controller中的方法返回类型String的url 在处理完逻辑导出文件后后台控制台出现 WARN  [org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver] (default task-22) Handling of [org.springframework.http.converter.HttpMessageNotWrit…
import org.apache.commons.lang.time.StopWatch; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annota…
原文:asp.net core 使用中间件拦截请求和返回数据,并对数据进行加密解密. GitHub demo https://github.com/zhanglilong23/Asp.NetCore.Demo 本项目使用中间件拦截请求数据,并对请求数据解密. 访问接口成功后拦截返回数据,然后将返回数据加密后返回. 其中log4net部分不再赘述(demo中有介绍) 将Post方法中Body中的数据进行AES解密 将返回数据进行AES加密 1:自定义中间件,并默认实现Invoke方法. 附带使用日…
Spring Security 前后端分离登录,非法请求直接返回 JSON 解决方案 在 Spring Security 中未获认证的请求默认会重定向到登录页,但是在前后端分离的登录中,这个默认行为则显得非常不合适,接下来介绍如何实现未获认证的请求直接返回 JSON ,而不是重定向到登录页面. 在自定义 Spring Security 配置的时候,有这样几个属性: @Override protected void configure(HttpSecurity http) throws Excep…
章节简言 上一章笔者讲到关于struts2启动的时候加载对应的准备工作.如加载配置文件struts.xml之类的信息.而相应的这些操作都离不开Dispatcher类的帮助.如果读者只是认为Dispatcher类的作用只有这些.那真的是大错特错了.所以本章笔者将继续讲到关于Dispatcher类的另一个功能.即是StrutsPrepareFilter类俩项工作中的处理request请求相关信息.在讲解之前,笔者还是想把相关的信息回想一下:当项目启动的时候,strtus2也就启动了.然后就会去初始化…
本菜鸡是一名弱弱的测试工程师,最近完成了一个支付相关的项目,项目工作中,需要建立一个模拟支付宝的网关,主要是接收请求并返回数据.作为一名没有丝毫开发经验的菜鸡,初期入门相当费劲,主要还是思维上的转变.由于本人技能水平有限,本篇文章只介绍如何启动服务,并接收请求,返回数据.希望可以给想要入门的童鞋一些帮助. 一.首先建立一个maven工程 二.web.xml文件内容 <?xml version="1.0" encoding="UTF-8"?> <we…
项目引用ibatis包: IBatisNet.Common.dll --文件版本1.6.2.0 IBatisNet.DataAccess.dll IBatisNet.DataMapper.dll 项目目录结构: 项目中使用ibatis做数据访问层已经有好长时间了.开发小组成员反映ibatis的insert操作返回的结果是null,这一点很是不爽. 其实,大家都是希望能够把新增记录的主键值返回出来. 上上周,大家有反编译ibatis的包,查看其实现原理,后来,又尝试其他方法,都没能给实现这个功能.…
打开自己的博客仔细浏览了一番,发现已经好久没有写博客了,由于最近一直比较忙碌懈怠了好多.默默反省三分钟.......言归正传,现在就对最近在学习webservice的过程中遇到的几种类型的问题中我的理解和解决方案.对于webservice大家肯定知道,它是一种使不同站点之间可以相互通信的技术,可以理解为一种接口.一个站点可以通过其它站点提供的webservice接口获得其它站点提供的相应服务.webservice使用起来非常小巧,轻便被很多站点所使用.对于webservice我不做过多说明,we…
本人微信公众号:微软动态CRM专家罗勇 ,回复278或者20180812可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 我们知道Dynamics 365 Customer Engagement中当返回的结果集超过5000的时候就不会显示具体多少条,如果我想知道有多少条呢?有时候我还需要知道实体的记录数到底有多少? 怎么办?每次写个程序去查询具体有多少?普通用户不方便(可能需要安装比较新版本的.Net Framework)…
让 Python 的数据库查询返回字典记录: https://yanbin.blog/python-database-query-return-dictionary-result/#more-9179 前言:利用zip函数将两个列表(list)组成字典(dict) # 使用zip函数, 把key和value的list组合在一起, 再转成字典(dict). keys = ['a', 'b', 'c'] values = [1, 2, 3] dictionary = dict(zip(keys, v…
相信你们有听过说“绕过前端”,但是可能想不到要怎样才能绕过前端呢? 首先,我们要知道什么是绕过前端?比如:登录用户名限制数字.6位,用户在登录页面填写用户名符合要求,使用Fiddler作为代理,拦截登录请求,修改这个请求提交的用户名(非数字.大于6位),此时的用户名就是不符合前端设置的要求了,若是通过Fiddler修改请求的数据,这种就叫做绕过前端. 然后,为什么会有通过测试绕过前端呢?再举个例子:下单付款->若是通过Fiddler拦截了请求,更改了商品的价格为1,再重新发送到服务器,如果此时的…
上周发现一个jQuery ajax请求错误返回status 0和错误error的问题,responseText是"error",状态码是0而不是200: $.ajax({ type: "POST", beforeSend: function(xhr){xhr.setRequestHeader('__RequestVerificationAntiCSRFToken', $("#hidden-CSRFToken").val());}, url: $(…