Avatar ·

如何在 C# 中发送 HTTP 请求?

各位同事大家好!

我遇到了一个看似简单的任务——从 .NET 6 控制台应用程序向外部 API 发送 HTTP 请求。我读了几篇教程,但示例都很零散:有的使用 HttpClient,有的使用 WebClient(已过时?),还有一些使用 RestSharp。我想了解现代且正确的方法。

我尝试通过 HttpClient 编写一个简单的 GET 请求,但应用程序挂起了。代码如下:
var client = new HttpClient();
var response = await client.GetAsync("https://api.github.com/zen");
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);

我在 Main 方法中运行(没有 async),收到警告说异步代码没有被等待。我尝试添加 .Result——结果发生了死锁。我也不清楚是否需要为 HttpClient 调用 Dispose(),以及如何正确处理错误(超时