WebApi中对请求参数和响应内容进行URL编码解码
项目经测试,发现从IE提交的数据,汉字会变成乱码,实验了网上很多网友说的给ajax加上contentType:"application/x-www-form-urlencoded; charset=UTF-8",发现没有用(ajax的请求标头确实变了,但是还是会乱码)
于是开始试验进行URL编码解码,一开始我是很不想这么干,因为这意味着我的后台也要对应的解码,现在没办法了,于是考虑用一个过滤器将客户端传过来的参数全部解码后再执行方法,没什么好说的,实现如下:
public class UrlDecodeFilter : ActionFilterAttribute
{
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{ var task = actionExecutedContext.Response.Content.ReadAsStringAsync(); HttpContent content = new StringContent(HttpUtility.UrlEncode(task.Result));
actionExecutedContext.Response.Content = content;
base.OnActionExecuted(actionExecutedContext);
}
public override void OnActionExecuting(HttpActionContext actionContext)
{
Dictionary<string, object> Param = actionContext.ActionArguments;
Dictionary<string, string> ParamTemp = new Dictionary<string, string>();
foreach (string item in Param.Keys)
{
object Value = Param[item];
if (Value == null)
continue;
string StrValue = Value.ToString();
if (string.IsNullOrEmpty(StrValue))
continue;
ParamTemp.Add(item, HttpUtility.UrlDecode(StrValue).Replace("??", ""));
}
foreach (var item in ParamTemp.Keys)
{
actionContext.ActionArguments[item] = ParamTemp[item];
}
base.OnActionExecuting(actionContext);
}
}
MVC里面和这个类似,只是使用的属性不一样。
对于为什么解码会出现“??”两个问号,我不知道,如果有知道的朋友希望不吝赐教
WebApi中对请求参数和响应内容进行URL编码解码的更多相关文章
- Fiddler插件 --- 解密Elong Mapi请求参数及响应内容
当前问题: 在我们日常的Web/App测试过程中, Fiddler是一大辅助利器:在我们团队,也经常使用Fiddler进行App抓包测试. 艺龙 App使用的REST(内部称为Mapi)接口,在使用过 ...
- 【C#】WebApi 添加过滤器,实现对请求参数和响应内容的日志记录
filter的介绍 filter在Web API中经常会用到,主要用于记录日志,安全验证,全局错误处理等:Web API提供两种过滤器的基本类型:actionfilterattribute,excep ...
- HTTP中的请求头和响应头属性解析
HTTP中的请求头和响应头属性解析 下面总结一下平时web开发中,HTTP请求的相关过程以及重要的参数意义 一次完整的HTTP请求所经历的7个步骤 说明:HTTP通信机制是在一次完整的HTTP通信过程 ...
- SpringMVC中post请求参数注解@requestBody使用问题
一.httpClient发送Post 原文https://www.cnblogs.com/Vdiao/p/5339487.html public static String httpPostWithJ ...
- SpringMVC请求参数和响应结果全局加密和解密
前提 前段时间在做一个对外的网关项目,涉及到加密和解密模块,这里详细分析解决方案和适用的场景.为了模拟真实的交互场景,先定制一下整个交互流程.第三方传输(包括请求和响应)数据报文包括三个部分: 1.t ...
- js处理url中的请求参数(编码/解码)
在处理 a 链接跳转其他页面时,总会遇到需要传递一些当前页面的信息到其他页面,然后其他页面利用这些信息进行相关操作.利用 get 请求或 hash 传递是常见的方式. 首先,需要对传递的参数进行编码, ...
- 详解JavaScript中的Url编码/解码,表单提交中网址编码
本文主要针对URI编解码的相关问题做了介绍,对Url编码中哪些字符需要编码.为什么需要编码做了详细的说明,并对比分析了Javascript 中和 编解码相关的几对函数escape / unescape ...
- Delphi中处理URL编码解码
Delphi中处理URL编码解码 一.URL简单介绍 URL是网页的地址,比方 http://www.shanhaiMy.com. Web 浏览器通过 URL 从 web server请求页面 ...
- http.request请求及在node中post请求参数解析
Post请求 var http=require('http'); var qs=require('querystring'); var post_data={a:123,time:new Date() ...
随机推荐
- PAT_A1003#Emergency
Source: PAT A1003 Emergency (25 分) Description: As an emergency rescue team leader of a city, you ar ...
- HDU 1907 John(博弈)
题目 参考了博客:http://blog.csdn.net/akof1314/article/details/4447709 //0 1 -2 //1 1 -1 //0 2 -1 //1 2 -1 / ...
- git连接github mac
话不多说,终端里的代码直接复制过来 Last login: Fri May 17 21:45:31 on ttys000 liuduoduodeMacBook-Air:~ liuxiangyang$ ...
- wget扒网站
wget神奇操作 整站复制 只限静态网页 wget -P 指定下载路径 -p 获取显示HTML页面所需的所有图像 -k 使链接指向本地文件 -H 递归时转到外部主机. wget --mirro ...
- opcache的配置
; Enable Zend OPcache extension module zend_extension=opcache.so ; Determines if Zend OPCache is ena ...
- CentOS与FreeBSD环境下安装filebeat
业务服务器CentOS与FreeBSD共存(痛苦囧...) CentOS rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch ...
- 第四节:DataFrame属性及方法(下)
- springcloud(六):给Eureka Server服务器端添加用户认证
1. 还未完成 ,客户端有点问题,后期完善 2.
- Leetcode 30.与所有单词相关联的子串
与所有单词相关联的字串 给定一个字符串 s 和一些长度相同的单词 words.在 s 中找出可以恰好串联 words 中所有单词的子串的起始位置. 注意子串要与 words 中的单词完全匹配,中间不能 ...
- nyoj 306 二分+dfs
#include<stdio.h> #include<string.h> #define N 200 int Min(int a,int b) { return a>b? ...