在 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# 教程。