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

在C#中实现按钮点击调用GET接口并在DataGridView展示数据

实现WinForm调用API并展示数据到DataGridView

1. 定义对应API返回数据的模型类

根据你的API返回的JSON结构创建实体类,属性要和返回字段一一对应(默认大小写敏感,可通过序列化配置调整):

public class ApiDataModel
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Details { get; set; }
    // 按API实际返回字段添加更多属性
}

2. 创建全局HttpClient实例

在WinForm项目中添加静态类管理HttpClient,避免频繁创建释放资源:

public static class ApiClient
{
    public static HttpClient Instance { get; } = new HttpClient
    {
        BaseAddress = new Uri("http://localhost:12345/api/"),
        Timeout = TimeSpan.FromSeconds(30)
    };
}

3. 编写按钮点击的异步逻辑

打开WinForm设计器,双击按钮生成Click事件,修改为异步方法:

private async void btnFetchData_Click(object sender, EventArgs e)
{
    try
    {
        // 发送GET请求到目标接口
        var response = await ApiClient.Instance.GetAsync("apiname/something");
        // 验证请求是否成功,失败则抛出异常
        response.EnsureSuccessStatusCode();

        // 读取返回的JSON内容
        var jsonContent = await response.Content.ReadAsStringAsync();

        // 反序列化为模型集合(使用.NET自带的System.Text.Json)
        var dataList = System.Text.Json.JsonSerializer.Deserialize<List<ApiDataModel>>(jsonContent);

        // 将数据绑定到DataGridView
        dataGridView1.DataSource = dataList;
    }
    catch (HttpRequestException ex)
    {
        MessageBox.Show($"API请求失败:{ex.Message}");
    }
    catch (System.Text.Json.JsonException ex)
    {
        MessageBox.Show($"数据解析失败:{ex.Message}");
    }
    catch (Exception ex)
    {
        MessageBox.Show($"未知错误:{ex.Message}");
    }
}

4. 可选:使用Newtonsoft.Json序列化

如果你习惯用Newtonsoft.Json,先通过NuGet安装Newtonsoft.Json包,替换反序列化代码:

var dataList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ApiDataModel>>(jsonContent);

关键注意点

  • 确保API控制台应用已启动,且监听端口为12345,否则会出现连接失败。
  • DataGridView会自动根据模型属性生成列,如需自定义列,可在设计器添加列并设置DataPropertyName对应模型属性名。
  • 使用async/await可避免UI线程阻塞,防止界面假死。

内容的提问来源于stack exchange,提问作者Lil s0uxz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 15:37:43