C#.NET Web API 2,如何使用 HTTPGET 异步方法上的 HttpContent 从网站中提取特定文本?

Posted

技术标签:

【中文标题】C#.NET Web API 2,如何使用 HTTPGET 异步方法上的 HttpContent 从网站中提取特定文本?【英文标题】:C#.NET Web API 2, How can I extract a certain text from a website using the HttpContent on a HTTPGET async method? 【发布时间】:2020-01-21 10:20:21 【问题描述】:

我是 Web 新手,我的 Web API 2 培训的一部分是创建一个使用 HttpClient 的 API 控制器 HttpContent 来读取整个网站并从中仅返回特定部分的文本。

当我调用该网站时,它会作为一个对象返回给我。对我来说,这被认为是要使用的“公共 API”。

据此提示我只将特定部分返回给用户的文本。

现在,我花了几个小时在谷歌上搜索并尝试使用 Regex 表达式、Newtonsoft.Json 对象……等来实现它,但我似乎无法将其分解。

有没有办法帮它?我错过了什么?请指教!

 public async System.Threading.Tasks.Task<string> GetAsync()
        
            using (HttpClient client = new HttpClient())
            
                using (HttpResponseMessage response = await client.GetAsync("https://www.lipsum.com/"))
                
                    using (HttpContent content = response.Content)
                    
                        string text = await content.ReadAsStringAsync();
                        return text;
                    
                
            
        

Extract and store only this piece of text

【问题讨论】:

解析返回的 html 页面与 HttpClient 或 Web API 无关。正则表达式可用于提取特定的、定义明确的 sn-ps。在其他情况下,您可能需要使用像 AngleSharp 这样的 HTML 解析器。不知道 HTML 是什么样子或您想提取什么内容无法提供任何帮助。 【参考方案1】:

我需要的是一个 HTML 解析器。为此,我使用了 AngleSharp。

我要感谢 @Panagiotis Kanavos 的澄清和反馈。

【讨论】:

以上是关于C#.NET Web API 2,如何使用 HTTPGET 异步方法上的 HttpContent 从网站中提取特定文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在目标c中的asp.net web api方法中使用POST方法?

.NET Web API CORS 不适用于所有路由

如何将int数组发送到post web api c#asp.net [重复]

ASP.NET Web API模型验证以及异常处理方式

C# Web Api 2 PUT 和 POST 请求“不支持”

如何使用 .net 框架 2.0 在 Web 服务中使用 Web api