我想从请求的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();
}
}
答案 0 :(得分:1)
$code
HTML输出:
Cache-Control: no-cache, Connection: keep-alive, Accept: */*, Accept-Encoding: gzip, deflate, Host: localhost:51161, User-Agent: PostmanRuntime/7.16.3, HEADER_1: HEADER_VAL_1, HEADER_2: HEADER_VAL_2, HEADER_3: HEADER_VAL_3
答案 1 :(得分:0)
我今天遇到了这个要求。我的解决方案略有不同,因为迪帕克的一些逻辑对我来说没有意义(但并不多......)。
我发现这种方法最能模拟 Postman 生成代码的方式。
var sb_debug = new StringBuilder();
foreach (var h in Request.Headers)
{
if (h.Value != null)
{
var val = string.Join(",", h.Value); // Header value is IEnumerable<string>, not just a string value
if (!string.IsNullOrWhiteSpace(val))
{
sb_debug.AppendLine($"{h.Key}: {val}");
}
}
}
Debug.WriteLine(sb_debug.ToString()); // Outputs all headers and values
请注意,这里没有逗号分隔符,因为它们不用于请求。