.net C# Web Api 调试获取请求的参数,通过HttpContextBase获取请求参数

转自:http://www.cnblogs.com/tianma3798/p/5089890.html

WEBAPI中的Request是HttpRequestMessage类型,不能像Web传统那样有querystring和from 方法接收参数,而传统的HttpReqest的基类是HttpReqestBase

所以这里我们就直接使用(HttpContextBase)Request.Properties["MS_HttpContext"]

复制代码
public void Post([FromBody]string value)
{
    HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context
    HttpRequestBase request = context.Request;//定义传统request对象            
    string name = request.Form["name"];    
}
复制代码

1.获取遍历路由参数

复制代码
//获取路由参数
IDictionary<string, object> dic = this.RequestContext.RouteData.Values;
StringBuilder builder = new StringBuilder();
foreach (var item in dic)
{
    builder.AppendFormat("key:{0},value:{1}", item.Key, item.Value);
    builder.AppendLine();
}
return builder.ToString();
复制代码

2.遍历表单参数

复制代码
////获取表单参数
HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context
HttpRequestBase request = context.Request;//定义传统request对象  
StringBuilder builder = new StringBuilder();
foreach (string item in request.Form.Keys)
{
    builder.AppendFormat("key:{0},value:{1}", item, request.Form[item]);
    builder.AppendLine();
}
return builder.ToString();
复制代码

posted @ 2019-05-10 11:20  LoneRanger_WDY  阅读(9330)  评论(0编辑  收藏  举报