如何从此 URL 从文件中获取内容?

Posted

技术标签:

【中文标题】如何从此 URL 从文件中获取内容?【英文标题】:How to get content from file from this URL? 【发布时间】:2012-08-27 18:39:39 【问题描述】:

我有这个网址:URL from Google

在新标签页中打开链接时,浏览器会强制我下载它。下载后,我得到一个名为“s”的文本文件。但我想使用 C# 访问这个 URL 并获取它的文本,不要将它作为文件保存到计算机。有什么办法吗?

【问题讨论】:

您想通过 C# 代码执行此操作吗? How to download a file from a URL in C#? 或 Download file from URL to a string 的可能重复项。 下载、读取、删除文件。 【参考方案1】:
var webRequest = WebRequest.Create(@"http://yourUrl");

using (var response = webRequest.GetResponse())
using(var content = response.GetResponseStream())
using(var reader = new StreamReader(content))
    var strContent = reader.ReadToEnd();

这会将请求的内容放入 strContent 中。

或者像下面提到的adrianbanks,只需使用WebClient.DownloadString()

【讨论】:

使用WebClient.DownloadString()有什么问题,可以在一行代码中做到这一点? Nothing... 我想我只是习惯于使用 WebRequest,因为我几乎不会只获得一个资源,或者必须处理标头。老实说,直到你刚才提到它,我才想到它。 @adrianbanks - 一方面,我不相信它适用于 PCL。【参考方案2】:

试试这个:

var url = "https://www.google.com.vn/s?hl=vi&gs_nf=1&tok=i-GIkt7KnVMbpwUBAkCCdA&cp=5&gs_id=n&xhr=t&q=thanh&pf=p&safe=off&output=search&sclient=psy-ab&oq=&gs_l=&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&fp=be3c25b6da637b79&biw=1366&bih=362&tch=1&ech=5&psi=8_pDUNWHFsbYrQeF5IDIDg.1346632409892.1";

var textFromFile = (new WebClient()).DownloadString(url);

【讨论】:

不喜欢不清理WebClient 对象的想法。总是喜欢在使用积木时使用那些。【参考方案3】:

由于这个问题和我之前的答案现在已经相当老了,更现代的答案是使用System.Net.Http中的HttpClient

using System.Net.Http;

namespace ConsoleApp2

    class Program
    
        async static void Main(string[] args)
        
            HttpClient client = new HttpClient();
            string result = await client.GetStringAsync("https://example.com/test.txt");
        
    

如果不在异步函数中,则:

string result = client.GetStringAsync("https://example.com/test.txt").Result;

【讨论】:

【参考方案4】:

对于 asp.net core / .Net 5+,您应该在您的服务中注入 HttpClient。您不应手动创建新实例。

public class MySerivice 
   private readonly HttpClient _httpClient;
   public MyService(HttpClient httpClient) 
       _httpClient = httpClient;
   
   
   public async Task Foo() 
       var myString = await _httpClient.GetStringAsync("https://my-url/file.txt");
   

注入 HttpClient 将在幕后使用 IHttpClientFactory。文档:https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests

【讨论】:

以上是关于如何从此 URL 从文件中获取内容?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 json 解码结果中获取格式化地址

如何从此 URL 获取 RTMP 和流名称? [关闭]

Paypal IPN:如何从此类中获取 POST?

如何使用PHP从此代码中的锚标记中提取id和url?

如何转换上传的视频并从此文件中获取屏幕截图?

我们如何使用Selenium Webdriver C#从URL获取特定值?