|
|
|
|
|
|
Author Rank:
|
|
Total page views :
134071
|
|
Total downloads :
|
|
|
|
|
|
Similar ArticlesMost ReadTop RatedLatest
|
|
|
|
|
|
|
|
|
|
In this article, you'll see how to download and upload files through HTTP.
Uploading and Downloading Files
The System.Net.WebClient class provides functionality to upload data to or download data from the Internet or intranet or a local file system. The WebClient class provides many ways to download and upload data. The following table describes WebClient class methods and properties briefly.
| Member |
Type |
Description |
| BaseURI |
Property |
Current base URL address |
| Headers |
Property |
Headers in the form of name and value pair associated with the request.
|
| QueryStrings |
Property |
Queries in the form of name and value pair associated with the request. |
| ResponseHeaders |
Property |
Headers in the form of name and value pair associated with the response. |
| DownloadData |
Method |
Download data from a URI and returns data as a byte array. |
| DownloadFile |
Method |
Download data from a URI and saves as a local file. |
| OpenRead |
Method |
Opens and reads a URI in stream form. |
| OpenWrite |
Method |
Opens a stream to write data to a URI. |
| UploadData |
Method |
Uploads data buffer to a URI. |
| UploadFile |
Method |
Uploads a local file to the given URI. |
| UploadValues |
Method |
Uploads name and value collection. |
Using WebClient Class
Downloading Data
The WebClient provides three different methods to download data either from the Internet, intranet, or local file system.
WebClient constructor doesn't take any arguments. In the following code, URL is the file name you want to download such as http://www.c-sharpcorner.com/index.asp. You can download any type of files using these methods such as image files, html and so on.
string URL = textBox1.Text; WebClient client = new WebClient();
The DownloadData method takes URI as a parameter, downloads data from a resource URI and returns a byte string.
byte [] bytedata = client.DownloadData(URL);
The DownloadFile method downloads data from a resource and saves it to the local file system. Hence it takes parameters, first is URI name and second is the file name stored as on the local system. The following code downloads a URL and saves it as temp.asp.
client.DownloadFile(URL, "C:\\temp.asp");
The OpenRead method downloads data from a resource and return data as a stream.
Stream data = client.OpenRead(URL);
Source Code:
// Address of URL string URL = textBox1.Text; try { // Get HTML data WebClient client = new WebClient(); Stream data = client.OpenRead(URL); StreamReader reader = new StreamReader(data); string str = ""; str = reader.ReadLine(); while( str != null) { Console.WriteLine(str); str = reader.ReadLine(); } data.Close(); } catch(WebException exp) { MessageBox.Show(exp.Message, "Exception"); }
Upload Data
The WebClient class provides four different ways to uploading data to a resource.
The OpenWrite method sends a data stream to the resource. It's reverse operation of OpenRead method. You pass URI as first parameter of OpenWrite.
OpenWrite(string);
The UploadData method sends a byte array to the resource and returns a byte array containing any response. It's a reverse operation of DownloadData method. It takes two arguments of string and array of bytes respectively.
UploadData(string, byte[]);
client.UploadData("http://www.mindcracker.com/testfile.bmp", data);
The UploadFile method sends a local file to the resource and returns a byte array containing any response. It's a reverse operation of DownloadFile. UploadFile also takes two parameters. First a URI name and second file to be uploaded.
UploadFile(string string);
client.UploadFile("http://www.mindcracker.com/tst.gif", @"c:\mcb.gif");
Or:
client.UploadFile("http://www.mindcracker.com/test.htm", @"c:\test.htm");
The UploadValues sends a NameValueCollection to the resource and returns a byte array containing any response.
UploadValues(string, NameValueCollection);
Using WebRequest and WebResponse Classes
Although you can use WebClient class to upload and download data but there are more things involved in uploading and downloading data. What if you don't have right to upload to the server you are uploading to? Did you see us passing userid and passwords for the server somewhere? We didn't think so. So if you don't have permission to write to the server, you get this error.

So what we do now? That's where boundary of the WebClient class ends. And that's where the WebRequest and WebResponse classes come in the existence.
The WebRequest Class
The WebRequest is an abstract base class. So you actually don't use it directly. You use it through it derived classes - HttpWebRequest and FileWebRequest.
You use Create method of WebRequest to create an instance of WebRequest. GetResponseStream returns data stream. The following sample example downloads data stream from a web page.
Sample Code
using System; using System.Net; using System.IO; namespace WebRequestSamp { /// <summary> /// Summary description for Class1. /// </summary> class Class1 { static void Main(string[] args) { WebRequest request = WebRequest.Create(http://www.c-sharpcorner.com/index.asp); WebResponse response = request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream()); string str = reader.ReadLine(); while(str != null) { Console.WriteLine(str); str = reader.ReadLine(); } } } }
HttpWebRequest and HttpWebResponse classes works in same way too. Here is one sample example.
Using HttpWebRequest and HttpWebResponse Classes
HttpWebRequest request = (HttpWebRequest)WebRequest.Create (http://www.microsoft.com ); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); String ver = response.ProtocolVersion.ToString(); StreamReader reader = new StreamReader(response.GetResponseStream() ); string str = reader.ReadLine(); while(str != null) { Console.WriteLine(str); str = reader.ReadLine(); }
Well .. that's it for now. My next submission is Web Browser. It should be up on the site soon.
|
|
|
Login
to add your contents and source code to this article
|
|
|
|
|
|
|
|
|
|
Mahesh Chand
Mahesh is a software developer with over 13 years of experience building systems for Financial and Banking, Engineering & Architectural, Imaging, Construction, Biological & Pharmaceuticals, Healthcare and Education industries. His expertise is Windows Forms, ASP.NET, Silverlight, WPF, WCF, Visual Studio 2010, SQL Server, and Oracle. If you are looking for a Windows Forms, ASP.NET, WPF, Silverlight, C#, VB.NET, Oracle, and SQL Server Consultant in Philadelphia area or remote location, drop me a line at MAHESH [AT] C-SHARPCORNER [DOT] COM.
|
|
|
|
|
|
|
|
|
C# Consulting is founded in 2002 by the founders of C# Corner. Unlike a traditional
consulting company, our consultants are well-known experts in .NET and many of them
are MVPs, authors, and trainers. We specialize in Microsoft .NET development and
utilize Agile Development and Extreme Programming practices to provide fast pace
quick turnaround results. Our software development model is a mix of Agile Development,
traditional SDLC, and Waterfall models.
|
|
Click here to learn more about C# Consulting. |
|
|
|
|
|
|
|
Introducing MaxV - one click. infinite control. Hyper-V Hosting from MaximumASP.
Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon.
Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees.
As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
|
Dynamic PDF
ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications.
|
Go.NET
Build custom interactive diagrams, network, workflow editors, flowcharts, or software design tools. Includes many predefined kinds of nodes, links, and basic shapes. Supports layers, scrolling, zooming, selection, drag-and-drop, clipboard, in-place editing, tooltips, grids, printing, overview window, palette. 100% implemented in C# as a managed .NET Control. Document/View/Tool architecture with many properties&events. Optional automatic layout.
|
Dundas Software
Dundas Chart for .NET is the most advanced .NET charting package available today. With an extremely complete feature set, elegant architecture and easy implementation, Dundas Chart can quickly add advanced Charting functionality to enhance and transform ASP.NET and Windows Forms applications. Whether you are implementing charting into internal projects, or building applications for clients, Dundas Chart offers advanced technology and advanced results to get the most out of data.
|
Clickatell's SMS Gateway
Clickatell's Developer Solutions allow you to SMS enable any website or
application via a range of API's. Learn More about our API connections.
|
Microsoft Visual Studio 2010 Professional
Microsoft Visual Studio 2010 Professional will launch on April 12, but you can beat the rush and secure your copy today by pre-ordering at the affordable estimated retail price of $549 (US). Pre-order now.
|
Nevron Chart for .NET 2010.1 Now Available
The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
|
Developer-Ready ASP.NET 2.0 Web Hosting with 3 MONTHS FREE
Now supporting .NET 3.0 Framework with Windows Workflow Foundation, Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF), windows CardSpace (WCS)! Providing more flexibility for Developers with Web Services Support and a User/Permission Manger. Also supporting MS SQL 2005/2000 with Real-Time Backups, FREE Automated Attach .MDF Tool, FREE SQL Restore and Shrink SQL DB Tools, and SQL
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|