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

MAUI/Xamarin Android中HttpClient发送GET请求Bearer授权头丢失问题

MAUI Android中Authorization Bearer头丢失的排查与解决
  • 检查Android网络安全配置
    从Android 9(API 28)开始,系统默认禁止明文HTTP请求。如果你的API使用HTTP协议,或域名不在默认信任列表中,可能导致请求头被拦截:

    1. 在Platforms/Android/Resources/xml目录下创建network_security_config.xml(无xml目录则新建),内容如下:
      <?xml version="1.0" encoding="utf-8"?>
      <network-security-config>
          <domain-config cleartextTrafficPermitted="true">
              <domain includeSubdomains="true">你的API域名</domain>
          </domain-config>
      </network-security-config>
      
    2. 打开Platforms/Android/AndroidManifest.xml,在<application>标签中添加配置引用:
      <application ... android:networkSecurityConfig="@xml/network_security_config">
      
  • 调整HttpRequest头的设置方式
    避免混合设置DefaultRequestHeaders和HttpRequestMessage的头,尝试单一方式配置:

    // 方式1:通过HttpRequestMessage设置认证头
    var request = new HttpRequestMessage(HttpMethod.Get, "你的API端点地址");
    request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
    var response = await client.SendAsync(request);
    

    或直接添加头字段:

    request.Headers.Add("Authorization", $"Bearer {token}");
    
  • 抓包验证请求头状态
    用Charles、Wireshark等工具抓取Android设备的网络请求,确认Authorization头的发送情况:

    • 若抓包显示头存在,问题出在API服务器的接收逻辑;
    • 若抓包也无此头,继续排查客户端配置。
  • 排除网络环境干扰
    关闭设备上的代理、VPN工具,这类工具可能修改或过滤请求头,确保请求直接发送到目标API服务器。

  • 确认Android权限配置
    检查AndroidManifest.xml中是否包含网络权限,缺失则添加:

    <uses-permission android:name="android.permission.INTERNET" />
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:37:43