asp.net webapi HttpRequestMessage 获取get和post所有参数

/// <summary>
/// 获取Http请求Get和Post所有参数
/// </summary>
/// <param name="request">HttpRequestMessage实例</param>
/// <returns>Get和Post参数键值对集合</returns>
public static class HttpRequestMessageExtensions
{
    public static IDictionary<string, string> GetAllQueryParameters(this HttpRequestMessage request)
    {
        NameValueCollection queryString = HttpContext.Current.Request.QueryString;
        NameValueCollection form = HttpContext.Current.Request.Form;
        IDictionary<string, string> queryParameters = new Dictionary<string, string>();
        foreach (string key in queryString)
        {
            if (!queryParameters.ContainsKey(key))
            {
                queryParameters.Add(key, queryString[key]);
            }
        }
        foreach (string key in form)
        {
            if (!queryParameters.ContainsKey(key))
            {
                queryParameters.Add(key, form[key]);
            }
        }
        return queryParameters;
    }
}

使用方法:

public class testController : ApiController
{
    public void Get()
    {
        IDictionary<string, string> queryParameters = Request.GetAllQueryParameters();
    }
}
经验分享 程序员 微信小程序 职场和发展