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

如何通过C#/.NET调用REST API获取Azure零废物认证区域?

获取Azure零废物认证区域的C#/.NET实现方案

目前Azure Resource Manager SDK(包括最新的Azure.ResourceManager包)确实没有直接提供查询零废物认证区域的API,以下是两种可行的实现思路:

方案一:模拟官方数据中心地图的API请求

官方数据中心地图的区域可持续性数据来自内部API,虽然没有公开文档,但可以通过模拟浏览器请求获取:

  1. 捕获API地址:打开浏览器开发者工具,在官网筛选「zero-waste certified」区域时,捕获对应的XHR请求,获取实际的API地址和请求参数。

  2. C#代码实现:使用HttpClient模拟请求,设置必要的请求头以绕过简单的反爬机制:

    using System;
    using System.Net.Http;
    using System.Threading.Tasks;
    using System.Text.Json;
    
    class Program
    {
        static async Task Main(string[] args)
        {
            using var httpClient = new HttpClient();
            // 设置浏览器UA,模拟正常用户请求
            httpClient.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36");
            
            // 替换为捕获到的实际API地址
            var requestUrl = "从开发者工具获取的零废物区域数据API地址";
            var response = await httpClient.GetAsync(requestUrl);
            response.EnsureSuccessStatusCode();
            
            var jsonContent = await response.Content.ReadAsStringAsync();
            // 根据API返回的JSON结构定义对应的模型类,并解析数据
            var regions = JsonSerializer.Deserialize<ZeroWasteRegion[]>(jsonContent);
            
            Console.WriteLine("Azure零废物认证区域:");
            foreach (var region in regions)
            {
                Console.WriteLine($"- {region.DisplayName} ({region.RegionCode})");
            }
        }
    }
    
    // 根据实际API响应结构调整字段
    public class ZeroWasteRegion
    {
        public string DisplayName { get; set; }
        public string RegionCode { get; set; }
    }
    

方案二:解析官方静态区域列表

如果API请求不稳定,可以直接抓取官方发布的零废物认证区域列表页面,用HTML解析库提取数据:

  1. 安装依赖:通过NuGet安装HtmlAgilityPack用于HTML解析:

    Install-Package HtmlAgilityPack
    
  2. C#代码实现:

    using System;
    using System.Linq;
    using HtmlAgilityPack;
    
    class Program
    {
        static void Main(string[] args)
        {
            var web = new HtmlWeb();
            // 替换为官方展示零废物认证区域的静态页面地址
            var doc = web.Load("官方零废物区域列表页面地址");
            
            // 根据页面实际DOM结构调整XPath选择器,定位区域名称元素
            var regionNodes = doc.DocumentNode.SelectNodes("//div[contains(@class,'region-list-item')]/text()");
            if (regionNodes != null)
            {
                Console.WriteLine("Azure零废物认证区域:");
                foreach (var node in regionNodes)
                {
                    var regionName = node.InnerText.Trim();
                    if (!string.IsNullOrEmpty(regionName))
                    {
                        Console.WriteLine($"- {regionName}");
                    }
                }
            }
        }
    }
    

关键提示

  • 这两种方法都依赖于官方网站的当前结构/API,若官网更新,代码的请求地址或解析逻辑需要同步调整
  • 控制请求频率,避免触发官方的反爬限制
  • 若需要长期稳定的数据源,建议关注Azure官方文档或Azure Resource Manager SDK的更新,等待官方正式提供相关查询接口

内容的提问来源于stack exchange,提问作者Danny van der Kraan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:52:45