首页 > 解决方案 > 如何在 ApiController 的方法中获取所有请求头列表

问题描述

我想从请求的 API 方法中获取所有请求标头及其值。 预期的输出字符串如下:

*Cache-Control:no-cache,
Content-Type:application/json; charset=utf-8,
HEADER_1:HEADER_VAL_1,
HEADER_2:HEADER_VAL_2,
HEADER_3:HEADER_VAL_3*

我试过 Request.Headers.toString() 也试过这个方法的格式输出;

//Code 
public class DEMOController : ApiController{

[HttpPost]
public string SaveSomeData(Object data)
{
string headersString = Request.Headers.toString();

}
}

标签: c#asp.net-web-api

解决方案


    string strOutput = "";
    string[] TempStringArray;
    TempStringArray = Request.Headers.ToString().Split(new char[] { '\r', '\n' });
    for(int i = 0; i < TempStringArray.Length; i++)
    {
       if (!string.IsNullOrEmpty(TempStringArray[i]))
      {
         if (strOutput == "")
         {
            strOutput = strOutput + TempStringArray[i] + ",</br>";
         }
         else
        {
           strOutput = strOutput + TempStringArray[i] + ",</br>";
        }                         

     }
  }

HTML 输出:

缓存控制:无缓存,
连接:保持活动状态,
接受: */*,
接受编码:gzip,放气,
主机:本地主机:51161,
用户代理:PostmanRuntime/7.16.3,
HEADER_1:HEADER_VAL_1,
HEADER_2:HEADER_VAL_2,
HEADER_3:HEADER_VAL_3

推荐阅读