📅  最后修改于: 2023-12-03 14:59:39.787000             🧑  作者: Mango
当使用C#编写API时,获取请求头中的值是常见的需求。在这篇文章中,我将介绍如何使用C#来获取HTTP请求头中的值。
我们可以使用ASP.NET Core中的HttpContext对象来获取请求头中的值。下面的代码是一个控制器示例,它演示了如何获取请求头中的Authorization值:
[ApiController]
[Route("[controller]")]
public class MyController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
string authHeader = HttpContext.Request.Headers["Authorization"];
// ...
}
}
在上面的代码中,我们通过使用HttpContext对象来获取请求头中的Authorization值,然后将其存储在名为authHeader的变量中。
当请求头中的键不存在时,使用HttpContext.Request.Headers[key]可能会抛出null引用异常。为了避免这种情况,我们可以使用TryGetValue方法。下面的代码演示了如何避免空引用异常,并在键不存在时为默认值提供一个备选项:
[ApiController]
[Route("[controller]")]
public class MyController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
string authHeader;
if (HttpContext.Request.Headers.TryGetValue("Authorization", out authHeader))
{
// ...
}
else
{
authHeader = "default value";
}
// ...
}
}
在上面的代码中,我们将尝试使用TryGetValue方法来获取请求头中的Authorization值,并检查是否获取到了值。如果获取到了值,我们将继续处理它,否则我们给authHeader赋了一个默认值。
在这篇文章中,我们探讨了如何使用C#来获取HTTP请求头中的值。我们使用了ASP.NET Core中的HttpContext对象,并演示了如何避免null引用异常。希望这篇文章对你有所帮助!