在 C# 中读取网页
最后修改于 2023 年 7 月 5 日
在本文中,我们将展示如何在 C# 中获取网页。
本文展示了如何使用 HttpClient
、Flurl.Http
和 RestSharp
读取页面。
HttpWebRequest
和 WebClient
已过时,不应再用于 HTTP 请求。在本教程的示例中,我们从一个小网页 webcode.me 读取网页。
使用 HttpClient 的 C# 读取网页
HttpClient
提供了一个基类,用于发送 HTTP 请求和接收来自 URI 标识的资源的 HTTP 响应。
using var client = new HttpClient(); client.DefaultRequestHeaders.Add("User-Agent", "C# console program"); var content = await client.GetStringAsync("http://webcode.me"); Console.WriteLine(content);
代码示例使用 HttpClient
异步抓取网页。HttpClient
是一种在 .NET 中获取网页的现代方法。
var content = await client.GetStringAsync("http://webcode.me");
await
运算符将一个 awaitable 作为参数;它检查 awaitable 是否已经完成;如果 awaitable 已经完成,则该方法继续运行。GetStringAsync
将内容作为异步操作读取到字符串中。
$ dotnet run <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>My html page</title> </head> <body> <p> Today is a beautiful day. We go swimming and fishing. </p> <p> Hello there. How are you? </p> </body> </html>
使用 Flurl.Http 的 C# 读取网页
Flurl.Http 是一个流畅、可移植、可测试的 HTTP,适用于 C# 语言的第三方客户端库。
$ dotnet add package Flurl.Http
我们安装 Flurl.Http
包。
string result = await "http://webcode.me".GetStringAsync(); Console.WriteLine(result);
该示例读取一个小网页并将其内容打印到终端。
string result = await "http://webcode.me".GetStringAsync();
await
运算符应用于异步方法中的任务,以暂停方法的执行,直到等待的任务完成。 该任务代表正在进行的工作。 数据通过 GetStringAsync
扩展方法检索。
使用 RestSharp 读取网页
RestSharp 是一个简单的 REST 和 HTTP API 客户端,适用于 .NET。 它是一个第三方库。
$ dotnet add package RestSharp
我们安装 RestSharp
包。
using RestSharp; var client = new RestClient("http://webcode.me"); var request = new RestRequest(); var res = await client.ExecuteGetAsync(request); Console.WriteLine(res.Content);
代码示例使用 RestSharp 库获取网页的内容。 网页是异步下载的。
var client = new RestClient("http://webcode.me");
使用 RestClient
类创建一个 rest 客户端。
var request = new RestRequest();
使用 RestRequest
创建一个请求; 默认情况下是 GET 请求。
var res = await client.ExecuteGetAsync(request);
使用 ExecuteGetAsync
方法异步执行请求。
Console.WriteLine(res.Content);
打印响应的内容。
来源
在本文中,我们展示了如何在 C# 中读取网页。
作者
列出所有 C# 教程。