You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用.NET HttpClient连接Notion API?Blazor Server授权401报错求助

Notion API 401授权错误排查方案

以下是针对Blazor Server中调用Notion API出现401错误的排查和修复步骤:

  • 修复HttpClient请求头重复问题
    如果你的client是全局复用实例,每次调用DefaultRequestHeaders.Add会重复添加Authorization和Notion-Version头,导致Notion服务器拒绝请求。建议改用HttpRequestMessage单独设置每个请求的头,避免重复:

    private async Task GetDatabaseContent()
    {
        string requestUri = $"https://api.notion.com/v1/pages/{pageId}";
        using var request = new HttpRequestMessage(HttpMethod.Get, requestUri);
        request.Headers.Add("Authorization", $"Bearer {bearerToken}");
        request.Headers.Add("Notion-Version", "2022-06-28");
    
        HttpResponseMessage response = new HttpResponseMessage();
        try
        {
            response = await httpClient.SendAsync(request);
        }
        catch (Exception ex)
        {
            responseMessage = $"Exception: {ex}";
            return;
        }
    
        if (response.IsSuccessStatusCode)
        {
            responseMessage = "Success: " + await response.Content.ReadAsStringAsync();
        }
        else
        {
            // 读取Notion返回的详细错误信息
            var errorContent = await response.Content.ReadAsStringAsync();
            responseMessage = $"Error: {errorContent}";
            reasonPhrase = $"Error: {response.ReasonPhrase}";
        }
    }
    
  • 验证BearerToken准确性
    确保bearerToken和Postman中使用的完全一致,没有多余空格、换行或截断。可通过调试模式查看变量值,或临时输出日志确认。

  • 检查PageId格式
    Notion的PageId需要是32位无短横线的字符串(比如从页面URL提取时,要去掉所有-)。如果requestUri中的pageId包含短横线,会导致目标资源不存在,间接触发401或404错误。

  • 确认集成权限
    确保你使用的内部集成已被添加为目标Notion页面的协作者。即使Postman能正常调用,也要检查Blazor项目中使用的集成是否和Postman一致,且页面权限设置正确。

  • 读取详细错误内容
    原代码直接输出response.Content无法获取具体错误信息,改为读取response.Content.ReadAsStringAsync()后,Notion API会返回详细的授权失败原因,比如token无效、权限不足等。

内容的提问来源于stack exchange,提问作者EngineerDude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 09:33:09