首页 汇率查询 汇率查询示例代码 十大银行的外汇牌价[C#]

十大银行的外汇牌价示例代码C#

作者: 阅读数:1126 上传时间:2025-04-23

十大银行的外汇牌价

using System;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;

class Exchange
{
    private const string AppKey = "YOUR_APPKEY_HERE"; // 替换为你的真实 appkey

    // 查询银行汇率信息
    public static async Task BankAsync(string bank)
    {
        try
        {
			using var client = new HttpClient();
            string url = $"https://api.jisuapi.com/exchange/bank?appkey={AppKey}&bank={bank}";
            HttpResponseMessage response = await client.GetAsync(url);
            response.EnsureSuccessStatusCode();

            string result = await response.Content.ReadAsStringAsync();
            JObject jsonarr = JObject.Parse(result);

            if ((int)jsonarr["status"] != 0)
            {
                Console.WriteLine($"API返回错误: {jsonarr["status"]}-{jsonarr["msg"]}");
                return;
            }

            Console.WriteLine($"银行代号:{bank}");

            // 从 jsonarr 中获取 result 对象,使用空合并运算符处理可能的 null 值
            JObject? resultObj = jsonarr["result"] as JObject;
            if (resultObj == null)
            {
                Console.WriteLine("未找到有效的结果数据");
                return;
            }

            // 处理 list 部分,判断是 JObject 还是 JArray
            var listToken = resultObj["list"];
            if (listToken is JObject listObj)
            {
                foreach (var item in listObj)
                {
                    if (item.Value is JObject value)
                    {
                        foreach (var subItem in value)
                        {
                            // 简化内插字符串
                            Console.WriteLine($"{subItem.Key.PadRight(8)}: {subItem.Value}");
                        }
                        Console.WriteLine("----------------------------------");
                    }
                }
            }
            else if (listToken is JArray listArray)
            {
                foreach (var item in listArray)
                {
                    if (item is JObject value)
                    {
                        foreach (var subItem in value)
                        {
                            // 简化内插字符串
                            Console.WriteLine($"{subItem.Key.PadRight(8)}: {subItem.Value}");
                        }
                        Console.WriteLine("----------------------------------");
                    }
                }
            }
            else
            {
                Console.WriteLine("未找到有效的列表数据");
            }
        }
        catch (HttpRequestException ex)
        {
            Console.WriteLine($"请求出错: {ex.Message}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"发生错误: {ex.Message}");
        }
    }

    static async Task Main()
    {
        // 调用货币转换方法
        await Exchange.ConvertAsync("CNY", "USD", 10);
        // 调用查询单一货币信息方法
        await Exchange.SingleAsync("CNY");
        // 调用查询所有货币信息方法
        await Exchange.CurrencyAsync();
        // 十大银行外汇牌价
        await Exchange.BankAsync("BOC");
    }
}