zoukankan      html  css  js  c++  java
  • Using WebRequest and WebResponse classes

    In this article, you'll see how to download and upload files through HTTP.  

    http://www.c-sharpcorner.com/Internet/WebRequestNResponseMDB.asp
    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抰 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抯 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抯 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抯 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抰 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抰 think so. So if you don抰 have permission to write to the server, you get this error.

    So what we do now? That抯 where boundary of the WebClient class ends. And that抯 where the WebRequest and WebResponse classes come in the existence.

    The WebRequest Class

    The WebRequest is an abstract base class. So you actually don抰 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();
    }

  • 相关阅读:
    workerman需要的php模块posix、pcntl、sysvshm、sysvmsg缺少,怎么办
    Linux操作:
    推荐!手把手教你使用Git
    Ninject简介(转)
    新年奉献MVC+EF(CODEFIRST)+EASYUI医药MIS系统(转)
    微软开源代码
    .NET分布式事务处理(转)
    IIS负载均衡(转)
    借助LVS+Keepalived实现负载均衡(转)
    WCF和ASP.NET Web API在应用上的选择(转)
  • 原文地址:https://www.cnblogs.com/cy163/p/204945.html
Copyright © 2011-2022 走看看