How to read a file from internet?

后端 未结 7 1881
甜味超标
甜味超标 2020-12-03 03:05

simple question: I have an file online (txt). How to read it and check if its there? (C#.net 2.0)

相关标签:
7条回答
  • 2020-12-03 03:25

    First, you can download the binary file:

    public byte[] GetFileViaHttp(string url)
    {
        using (WebClient client = new WebClient())
        {
            return client.DownloadData(url);
        }
    }
    

    Then you can make array of strings for text file (assuming UTF-8 and that it is a text file):

    var result = GetFileViaHttp(@"http://example.com/index.html");
    string str = Encoding.UTF8.GetString(result);
    string[] strArr = str.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
    

    You'll receive every (except empty) line of text in every array field.

    0 讨论(0)
  • 2020-12-03 03:27

    This is too much easier:

    using System.Net;
    using System.IO;
    

    ...

        using (WebClient client = new WebClient()) {
            //... client.options
            Stream stream = client.OpenRead("http://.........");
            using (StreamReader reader = new StreamReader(stream)) {
                string content = reader.ReadToEnd();
            }
        }
    

    "WebClient" and "StreamReader" are disposables. The content of file will be into "content" var.

    The client var contains several configuration options.

    The default configuration could be called as:

    string content = new WebClient().DownloadString("http://.........");
    
    0 讨论(0)
  • 2020-12-03 03:28

    an alternative to HttpWebRequest is WebClient

        // create a new instance of WebClient
        WebClient client = new WebClient();
    
        // set the user agent to IE6
        client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705;)");
        try
        {
            // actually execute the GET request
            string ret = client.DownloadString("http://www.google.com/");
    
            // ret now contains the contents of the webpage
            Console.WriteLine("First 256 bytes of response: " + ret.Substring(0,265));
        }
        catch (WebException we)
        {
            // WebException.Status holds useful information
            Console.WriteLine(we.Message + "\n" + we.Status.ToString());
        }
        catch (NotSupportedException ne)
        {
            // other errors
            Console.WriteLine(ne.Message);
        }
    

    example from http://www.daveamenta.com/2008-05/c-webclient-usage/

    0 讨论(0)
  • 2020-12-03 03:28

    Look at System.Net.WebClient, the docs even have an example of retrieving the file.

    But testing if the file exists implies asking for the file and catching the exception if it's not there.

    0 讨论(0)
  • 2020-12-03 03:31

    I think the WebClient-class is appropriate for that:  

    WebClient client = new WebClient();
    Stream stream = client.OpenRead("http://yoururl/test.txt");
    StreamReader reader = new StreamReader(stream);
    String content = reader.ReadToEnd();
    

    http://msdn.microsoft.com/en-us/library/system.net.webclient.openread.aspx

    0 讨论(0)
  • 2020-12-03 03:36

    A little bit easier way:

    string fileContent = new WebClient().DownloadString("yourURL");
    
    0 讨论(0)
提交回复
热议问题