1、处理HTTP非正常的请求参数:
[1] 获取相应的流转为string
[2] request 的只读属性设置为可编辑,类似form
[3] 转换为json对象
[4] 重设只读属性
//判断请求类似如果不是form类型而是application/json;charset=UTF-8 if(HttpContext.Current.Request.ContentType.IndexOf("application/json")>-1) { byte[] byts = new byte[HttpContext.Current.Request.InputStream.Length]; HttpContext.Current.Request.InputStream.Read(byts, 0, byts.Length); string jsonText = System.Text.Encoding.Default.GetString(byts); jsonText = HttpContext.Current.Server.UrlDecode(jsonText); JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText); //构造只读集合 PropertyInfo formreadonly = typeof(System.Collections.Specialized.NameValueCollection).GetProperty("IsReadOnly", BindingFlags.Instance | BindingFlags.NonPublic); //设置form 为可编辑 formreadonly.SetValue(HttpContext.Current.Request.Form, false, null); foreach(var p in jo.Properties()) { HttpContext.Current.Request.Form.Add(p.Name,p.Type.Equals(JTokenType.String)?p.Value.ToString():null); } formreadonly.SetValue(HttpContext.Current.Request.Form, true, null); }