Asp.Net WebAPI 通过HttpContextBase获取请求参数

本文介绍在WEBAPI中如何通过不同方式获取路由参数和表单参数的方法,包括利用HttpRequestMessage转换为传统HttpRequest对象的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值