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

C#开发UWP应用执行HTTP GET请求报错但浏览器可正常访问对应地址

UWP应用特定设备HTTP请求失败解决方案
  • 检查UWP应用清单权限
    必须确保Package.appxmanifest里已勾选 Internet(客户端) 权限,如果你的服务涉及本地内网部署,还要额外勾选 专用网络(客户端和服务器) 权限,部分设备的系统安全策略会对未声明权限的应用静默拦截外网请求,哪怕浏览器能正常访问。
  • 适配TLS版本
    你当前的代码没有显式指定TLS版本,部分旧版Windows10设备的默认TLS版本可能低于后端Azure服务要求的TLS1.2,在实例化HttpClient之前加一行代码强制指定TLS版本,该代码仅需执行一次即可:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls13;
  • 替换UWP原生HttpClient实现
    UWP平台更推荐使用原生的Windows.Web.Http.HttpClient而非System.Net.Http.HttpClient,前者对UWP的网络隔离机制、系统代理适配更好,不会出现部分设备上莫名其妙的请求拦截问题,示例代码如下:
using Windows.Web.Http;

string pingUrl = "https://ltbackend.azurewebsites.net/diagnostic/ping";
HttpClient httpClient = new HttpClient();
try
{
    HttpResponseMessage response = await httpClient.GetAsync(new Uri(pingUrl));
    response.EnsureSuccessStatusCode();
    string stringRes = await response.Content.ReadAsStringAsync();
    HttpStatusCode respCode = response.StatusCode;
    // 后续业务逻辑
}
catch (Exception ex)
{
    // 异常处理逻辑
}
  • 排查UWP网络隔离规则
    部分设备如果开启了企业级网络策略,会将UWP应用加入网络隔离列表,你可以让出现问题的用户以管理员身份运行PowerShell,执行以下命令排查:
    CheckNetIsolation.exe LoopbackExempt -s
    如果你的应用不在豁免列表里,执行以下命令添加(替换<你的应用包家族名称>为实际值,可在应用清单的打包页面查看):
    CheckNetIsolation.exe LoopbackExempt -a -n="<你的应用包家族名称>"
    该操作临时生效,重新安装应用需要重新执行,如果要批量处理可以在应用首次启动时请求用户权限执行该命令。
  • 补全请求头配置
    部分云服务会拦截缺失User-Agent请求头的请求,你可以在发送请求前手动给请求对象加UA头,模拟普通浏览器的UA即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 22:45:05