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

HttpClient Get请求返回Null响应问题排查求助

问题原因与解决方案

问题出在异步方法的调用逻辑上,你的代码存在两个核心问题:

  • 同步的Main方法调用async void类型的方法后,会直接继续执行后续逻辑,程序会在异步请求完成前就提前退出,导致你看不到响应内容,误以为返回了Null。
  • async void仅适用于事件处理场景,普通异步方法应当返回Task或Task<T>,才能正确等待异步操作完成。

修复后的代码

using System.Net.Http;
using System.Threading.Tasks;

internal class Program
{
    static async Task Main(string[] args)
    {
        await getit();
    }

    static async Task getit()
    {
        // 推荐复用HttpClient实例,避免频繁创建释放资源
        using HttpClient client = new HttpClient();
        var respo = await client.GetStringAsync("https://testnet.binancefuture.com/fapi/v1/klines?symbol=BTCUSDT&interval=1h&limit=10");
        Console.WriteLine(respo);
    }
}

关键修改说明

  • 将Main方法改为async Task Main(C# 7.1及以上版本支持),允许在主方法中使用await等待异步操作完成。
  • 将async void getit()调整为async Task getit(),让异步方法的执行状态可以被追踪和等待。
  • 使用using声明管理HttpClient实例,确保资源被正确释放(生产环境中更推荐全局复用单一HttpClient实例)。

修改后程序会等待Get请求完成并输出完整响应内容,不会再出现无输出的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:39:52