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

调用Microsoft Graph获取Contacts时遇异常:Content type text/html无解析工厂

解决Microsoft Graph获取Contacts时的"Content type text/html does not have a factory registered to be parsed"异常

这个错误的核心原因是Graph请求返回了HTML内容(而非预期的JSON响应),SDK无法解析HTML格式导致失败。常见场景包括认证失败返回登录页面、权限不足返回错误页面,或者请求被拦截重定向到HTML页面。

排查和解决步骤:

  • 验证认证有效性
    确认requestAdapter使用的访问令牌具备Contacts.Read权限,且未过期。可以将令牌复制到jwt.ms解析,检查scp字段是否包含Contacts.Read,以及exp字段的过期时间。

  • 捕获原始响应内容
    添加异常捕获,查看实际返回的HTML内容,定位具体错误:

    try
    {
        var result = await graphClient.Me.Contacts.GetAsync();
    }
    catch (Exception ex)
    {
        if (ex is HttpRequestException httpEx && httpEx.Data.Contains("Response"))
        {
            var response = httpEx.Data["Response"] as HttpResponseMessage;
            if (response != null)
            {
                var rawContent = await response.Content.ReadAsStringAsync();
                Console.WriteLine("原始响应内容:\n" + rawContent);
            }
        }
        // 同时捕获OData标准错误
        else if (ex is ODataError odataError)
        {
            Console.WriteLine("OData错误:" + odataError.Error.Message);
        }
    }
    
  • 检查权限配置
    确认应用注册中已添加Contacts.Read的委派权限,并且:

    • 如果是用户授权场景,确保用户已完成授权流程;
    • 如果是应用权限场景,已获取管理员同意,且使用的是应用令牌而非用户令牌。
  • 确认请求端点正确性
    检查graphClient是否指向正确的Graph API端点(默认是https://graph.microsoft.com/v1.0),避免因环境配置错误导致请求到错误地址返回HTML。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 02:28:25