程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#完成簡略的Http要求實例

C#完成簡略的Http要求實例

編輯:C#入門知識

C#完成簡略的Http要求實例。本站提示廣大學習愛好者:(C#完成簡略的Http要求實例)文章只能為提供參考,不一定能成為您想要的結果。以下是C#完成簡略的Http要求實例正文


本文實例講述了C#完成簡略的Http要求的辦法。分享給年夜家供年夜家參考。詳細剖析以下:

經由過程.Net中的兩個類HttpWebRequest類,HttpWebResponse類來完成Http的要求,呼應處置。

第一個小測試是要求百度首頁(http://www.百度.com)的內容,也就是要取得百度首頁的html內容,

完成步調:

1.經由過程WebRequest類創立一個HttpWebRequest的對象,該對象可以包括Http要求信息。

(這裡有點供年夜家思慮:為何要經由過程父類WebRequest來創立這個對象,而不克不及new一個HttpWebRequest來創立,在HttpWebRequest類中的結構函數是:protected HttpWebRequest(SerializationInfo serializationInfo, StreamingContext streamingContext); )

2.設置HttpWebRequest對象,其實就是設置Http要求報文的信息內容。

3.從HttpWebRequest對象中獲得HttpWebResponse對象,該對象包括Http呼應信息。

4.從呼應信息中獲得呼應頭信息和呼應主體信息。

部門完成代碼以下:

創立HttpWebRequest要求,設置要求報文信息
//要求
string uri = http://www.百度.com;
HttpWebRequest request = HttpWebRequest.Create(uri) as HttpWebRequest;
request.Method = "GET";                            //要求辦法
request.ProtocolVersion = new Version(1, 1);   //Http/1.1版本
//Add Other ...

吸收呼應,輸入呼應頭部信息和主體信息


HttpWebResponse response=
                request.GetResponse() as HttpWebResponse;
  //Header
  foreach (var item in response.Headers)  
 {
    this.txt_Header.Text += item.ToString()+": " +  
    response.GetResponseHeader  (item.ToString())
    + System.Environment.NewLine;
 }

   //假如主體信息不為空,則吸收主體信息內容
  if (response.ContentLength <= 0)
     return;
  //吸收呼應主體信息
  using(Stream stream =response.GetResponseStream())
  {
    int totalLength=(int)response.ContentLength;
    int numBytesRead=0;
    byte[] bytes=new byte[totalLength+1024];
   //經由過程一個輪回讀取流中的數據,讀取終了,跳出輪回
    while( numBytesRead < totalLength  )
    {
     int num=stream.Read(bytes,numBytesRead,1024);  //每次願望讀取1024字節
     if( num==0 )   //解釋流中數據讀取終了
       break;
     numBytesRead+=num;
    }
 }
  //將吸收到的主體數據顯示到界面
  string content=Encoding.UTF8.GetString(bytes);
  this.txt_Content.Text=content;

第二個小測試是要求網上的一張圖片,並將圖片保留到當地。

完成步調與第一個小測試的異常相似,經由過程圖片的url向辦事器停止要求,然後吸收呼應,呼應的主體信息內容保留為當地圖片文件。一小點分歧的地方就在於須要將主體內容保留為文件情勢,不是顯示到界面上。

症結代碼以下:


//...
string url="http://xx.xxx/xx.jpg";  //圖片資本的url
//...
using (Stream stream = response.GetResponseStream())  
{
   //以後時光作為文件名
   string fileName = DateTime.Now.ToString("yyyyMMddhhmmss")+".jpg";
   using (Stream fsStream = new FileStream(fileName, FileMode.Create))
   {
      stream.CopyTo(fsStream);
   }
}

 附:運轉成果以下圖:

 願望本文所述對年夜家的C#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved