tags:

views:

101

answers:

4

Hi,

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

+5  A: 

from http://www.csharp-station.com/HowTo/HttpWebFetch.aspx

    HttpWebRequest  request  = (HttpWebRequest)
        WebRequest.Create("myurl");

        // execute the request
        HttpWebResponse response = (HttpWebResponse)
            request.GetResponse();
            // we will read data via the response stream
        Stream resStream = response.GetResponseStream();
    string tempString = null;
    int    count      = 0;

    do
    {
        // fill the buffer with data
        count = resStream.Read(buf, 0, buf.Length);

        // make sure we read some data
        if (count != 0)
        {
            // translate from bytes to ASCII text
            tempString = Encoding.ASCII.GetString(buf, 0, count);

            // continue building the string
            sb.Append(tempString);
        }
    }
    while (count > 0); // any more data to read?

    // print out page source
    Console.WriteLine(sb.ToString());
Russell Steen
A: 

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.

Timores
A: 

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/

qntmfred
A: 

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

Pbirkoff