📜  C# api 从标头获取值 - C# (1)

📅  最后修改于: 2023-12-03 14:59:39.787000             🧑  作者: Mango

C# API 从标头获取值

当使用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引用异常。希望这篇文章对你有所帮助!