How to get content from file from this URL?

前端 未结 4 2010
北海茫月
北海茫月 2020-12-08 14:44

I have this URL: URL from Google

When open link in new tab, the browser force me download it. After download, I get a text file named \"s\". But I want use C# acces

相关标签:
4条回答
  • 2020-12-08 15:05
    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();
    }
    

    This will place the contents of the request into strContent.

    Or as adrianbanks mentioned below simply use WebClient.DownloadString()

    0 讨论(0)
  • 2020-12-08 15:13

    Since this question and my previous answer is fairly old now, a more modern answer would be to use HttpClient from System.Net.Http

    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");
            }
        }
    }
    

    If not within an async function, then:

    string result = client.GetStringAsync("https://example.com/test.txt").Result;
    
    0 讨论(0)
  • 2020-12-08 15:16

    Try this:

    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);
    
    0 讨论(0)
  • 2020-12-08 15:18

    For asp.net core / .Net 5+, you should inject HttpClient in your service. You should not manually create a new instance.

    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");
       }
    }
    

    Injecting HttpClient will use IHttpClientFactory behind the scenes. Docs: https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests

    0 讨论(0)
提交回复
热议问题