在 .NET 中从 URL 读取到字符串的最简单方法

Posted

技术标签:

【中文标题】在 .NET 中从 URL 读取到字符串的最简单方法【英文标题】:Easiest way to read from a URL into a string in .NET 【发布时间】:2010-11-06 02:23:43 【问题描述】:

给定一个字符串中的 URL:

http://www.example.com/test.xml

将文件内容从服务器(由 url 指向)下载到 C# 中的字符串中的最简单/最简洁的方法是什么?

我现在的做法是:

WebRequest request = WebRequest.Create("http://www.example.com/test.xml");
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();

很多代码实际上可能只有一行:

string responseFromServer = ????.GetStringFromUrl("http://www.example.com/test.xml");

注意:我不担心异步调用 - 这不是生产代码。

【问题讨论】:

【参考方案1】:
using(WebClient client = new WebClient()) 
   string s = client.DownloadString(url);

【讨论】:

另一个经常被忽视的实用程序类 - 但如此很有用。 请记住,您也应该将其放入 try catch 块中,以防出现问题 @DanW 是的,它确实如此,我刚刚测试过它(使用string s = client.DownloadString("https://***.com/questions/1048199/easiest-way-to-read-from-a-url-into-a-string-in-net/1048204");) - 工作得很好。无论发生什么:直接的问题不是 https。您确定该站点具有有效的证书吗?【参考方案2】:

上述答案中的方法现已弃用,目前推荐使用HTTPClient:

    using (HttpClient client = new HttpClient())
    
        string s = await client.GetStringAsync(url);
    

【讨论】:

以上是关于在 .NET 中从 URL 读取到字符串的最简单方法的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中从文件末尾读取的最有效方法是啥? (解析文件中的最后 128 位)

.NET:发送带有数据的 POST 并读取响应的最简单方法

在没有任何插件的情况下,在chrome dev工具中从POST请求中提取请求主体的最简单方法

如何在 C# 中从外部站点的 url 读取 PDF 文件 [关闭]

C# 中从字符串中修剪换行符的最简单方法是啥?

在 docker 和 ubuntu 中从上游读取响应标头时失败(104:对等方重置连接)