simple question: I have an file online (txt). How to read it and check if its there? (C#.net 2.0)
Asked
Active
Viewed 8.3k times
7 Answers
85
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

Paul DelRe
- 4,003
- 1
- 24
- 26

Pbirkoff
- 4,642
- 2
- 20
- 18
-
1Could you fill in the prerequisites for this? I'm getting `The type or namespace name 'WebClient' could not be found` – jbyrd Feb 27 '18 at 19:33
-
WebClient can be found in System.Net - a quick Google for "dotnet WebClient" usually turns up the Microsoft reference page which tells you the hierarchy. – Magnus Smith Mar 22 '21 at 08:50
22
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
- 6,494
- 6
- 38
- 56
-
9Nowadays it's _much_ simpler: just instantiate a `WebClient` and call `DownloadString` on it. – Matt Tsōnto Mar 20 '16 at 19:34
-
1Where do the variables `sb` and `buf` come from? Also the link is dead now. – jbyrd Feb 27 '18 at 19:38
-
1
10
A little bit easier way:
string fileContent = new WebClient().DownloadString("yourURL");

daniell89
- 1,832
- 16
- 28
8
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.

pbies
- 666
- 11
- 28
-
1This is for Windows line ending encoding. If you wish to split lines for Linux use "\n". – pbies Jul 28 '16 at 16:40
-
better to use new string[] { Environment.NewLine } for generic soltuion – Wajdy Essam Apr 17 '22 at 22:43
4
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/

kenwarner
- 28,650
- 28
- 130
- 173
0
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://.........");

KakashiJack
- 162
- 1
- 8