欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中的WebRequest與WebResponse抽象類、DNS靜態(tài)類、Ping類介紹

 更新時間:2022年05月16日 15:34:25   作者:springsnow  
這篇文章介紹了C#中的WebRequest與WebResponse抽象類、DNS靜態(tài)類、Ping類,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、概述

1、WebRequest:

對統(tǒng)一資源標(biāo)識符 (URI) 發(fā)出請求。 這是一個 abstract 類。
WebRequest的派生類:PackWebRequest、FileWebRequest、FtpWebRequest、HttpWebRequest

重要:我們不建議你使用WebRequest或其派生的類的新的開發(fā)。 Net4.5以上請改用System.Net.Http.HttpClient類。

2、WebResponse

提供來自統(tǒng)一資源標(biāo)識符 (URI) 的響應(yīng)。 這是一個 abstract 類。
WebResponse派生類:PackWebResponse、FileWebResponse、FtpWebResponse、HttpWebResponse

客戶端應(yīng)用程序不會創(chuàng)建WebResponse對象直接; 通過調(diào)用WebRequest實例的GetResponse方法來創(chuàng)建。

二、下載

1、同步模式

WebRequest request = WebRequest.Create("http://www.baidu.com");//可以將request強制轉(zhuǎn)換為HttpWebRequest,以設(shè)置和獲取特定的屬性
request.Credentials = CredentialCache.DefaultCredentials;//也可以設(shè)置代理request.Proxy..
request.Timeout = 1000;

WebResponse response = request.GetResponse
();//獲取響應(yīng).有異步方法:Begin/EndGetResponse
Stream stream = response.GetResponseStream();//
獲取響應(yīng)流,讀取響應(yīng)流,進(jìn)行下載
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))//也可以stream.Read(buffer)
{
    Console.WriteLine(reader.ReadToEnd());
}

2、異步模式

WebRequest request = WebRequest.Create("http://www.baidu.com");//可以將request強制轉(zhuǎn)換為HttpWebRequest,以設(shè)置和獲取特定的屬性

request.BeginGetResponse(ar =>{
    WebRequest request_1 = (WebRequest)ar.AsyncState;
    WebResponse response = request_1.EndGetResponse(ar);
    Stream stream = response.GetResponseStream();//獲取響應(yīng)流
    using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))//也可以stream.Read(buffer)
    {
        Console.WriteLine(reader.ReadToEnd());
    }
}, request);

3、Net4.5以上,Task異步。

void Main()
{
    GetResponseAsync();
}

public async void GetResponseAsync()
{
    WebRequest request = WebRequest.Create("http://www.baidu.com");//可以將request強制轉(zhuǎn)換為HttpWebRequest,以設(shè)置和獲取特定的屬性
    WebResponse response = await request.GetResponseAsync() as WebResponse;

    Stream stream = response.GetResponseStream();//獲取響應(yīng)流
    using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))//也可以stream.Read(buffer)
    {
        Console.WriteLine(reader.ReadToEnd());
    }
}

三、上傳:

1、HTTP上傳:

Encoding encoding = Encoding.Default;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.baidu.com");
request.Method = "post";
request.Accept = "text/html, application/xhtml+xml, */*";
request.ContentType = "application/x-www-form-urlencoded";
byte[] buffer = encoding.GetBytes("aaa");
request.ContentLength = buffer.Length;
Stream stream = request.GetRequestStream();//獲取請求流,進(jìn)行寫入流
,進(jìn)行上傳或者異步:Begin/EndGetRequestStream

stream.Write(buffer, 0, buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
    Console.WriteLine(reader.ReadToEnd());
}

2、FTP上傳文件代碼實現(xiàn):(對于FTP,微軟建議使用第三方工具)

string ftphost = "127.0.0.1";
//here correct hostname or IP of the ftp server to be given  

string ftpfullpath = "ftp://" + ftphost + "/testfolder/testfile.xml";
FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath);
ftp.Credentials = new NetworkCredential("userid", "password");
//userid and password for the ftp server to given  

ftp.KeepAlive = true;
ftp.UseBinary = true;
ftp.Method = WebRequestMethods.Ftp.UploadFil;
FileStream fs = File.OpenRead(@"c:\testfile.xml");
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
Stream ftpstream = ftp.GetRequestStream();
ftpstream.Write(buffer, 0, buffer.Length);
ftpstream.Close();

FtpWebRequest與FtpWebResponse完成FTP操作

FTP工具FileZilla、WinSCP、FTP類庫FluentFTP

四、DNS靜態(tài)類

Dns類是一個靜態(tài)類,從 Internet 域名系統(tǒng) (DNS) 中檢索有關(guān)特定主機的信息。

DNS 查詢中的主機信息返回的實例中IPHostEntry類。 如果指定的主機在 DNS 數(shù)據(jù)庫中,有多個條目IPHostEntry包含多個 IP 地址和別名。

1、Dns類方法

  • GetHostName()    獲取本地計算機的主機名。
  • GetHostAddresses(String)    返回指定主機的 Internet 協(xié)議 (IP) 地址。返回IPAddress[]數(shù)組
  • GetHostEntry(String)    將主機名或 IP 地址解析為 IPHostEntry 實例。
  • GetHostByAddress(String)    根據(jù) IP 地址創(chuàng)建 IPHostEntry 實例。
  • GetHostEntry(IPAddress)    將 IP 地址解析為 IPHostEntry 實例。
  • GetHostByAddress(IPAddress)    根據(jù)指定的 IPAddress 創(chuàng)建 IPHostEntry 實例。
  • Resolve(String)    將 DNS 主機名或 IP 地址解析為 IPHostEntry 實例。

2、IPHostEntry屬性

  • AddressList    獲取或設(shè)置與主機關(guān)聯(lián)的 IP 地址列表。返回IPAddress[]數(shù)組
  • Aliases    獲取或設(shè)置與主機關(guān)聯(lián)的別名列表。
  • HostName    獲取或設(shè)置主機的 DNS 名稱。

五、Ping類

Ping類位于System.Net.NetworkInformation下。

bool online = false; //是否在線
try
{

    Ping ping = new Ping();
    PingReply pingReply = ping.Send("192.168.132.191");//主機名或者IP地址
    if (pingReply.Status == IPStatus.Success)
    {
        online = true;
        Console.WriteLine("當(dāng)前在線,已ping通!");
    }
    else
    {
        Console.WriteLine("不在線,ping不通!");
    }
}
catch
{
    Console.WriteLine("不在線,ping不通!");
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • WPF開發(fā)之UniformGrid和ItemsControl的應(yīng)用詳解

    WPF開發(fā)之UniformGrid和ItemsControl的應(yīng)用詳解

    為了簡化開發(fā),WPF提供了UniformGrid布局和ItemsControl容器,本文以一個簡單的小例子,簡述如何在WPF開發(fā)中應(yīng)用UniformGrid和ItemsControl實現(xiàn)均勻的布局,希望對大家有所幫助
    2024-01-01
  • c#實現(xiàn)ini文件讀寫類分享

    c#實現(xiàn)ini文件讀寫類分享

    c#實現(xiàn)ini文件讀寫類分享,大家參考使用吧
    2013-12-12
  • c#中WinForm使用OpencvSharp4實現(xiàn)簡易抓邊

    c#中WinForm使用OpencvSharp4實現(xiàn)簡易抓邊

    本文主要介紹了c#中WinForm使用OpencvSharp4實現(xiàn)簡易抓邊,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C#中的委托和事件

    C#中的委托和事件

    這篇文章介紹了C#中的委托和事件,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 不用IDE寫C#的Hello World的方法

    不用IDE寫C#的Hello World的方法

    這篇文章主要介紹了不用IDE寫C#的Hello World的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-10-10
  • C#實現(xiàn)異步的常用方式總結(jié)

    C#實現(xiàn)異步的常用方式總結(jié)

    這篇文章主要為大家詳細(xì)介紹了C#實現(xiàn)異步的幾個常用方式,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下
    2023-05-05
  • C#實現(xiàn)自定義定時組件的方法

    C#實現(xiàn)自定義定時組件的方法

    這篇文章主要介紹了C#實現(xiàn)自定義定時組件的方法,很實用的功能,需要的朋友可以參考下
    2014-08-08
  • 淺談Unity腳本生命周期與執(zhí)行順序

    淺談Unity腳本生命周期與執(zhí)行順序

    在Unity中,腳本可以理解為附加在游戲?qū)ο笊系挠糜诙x游戲?qū)ο笮袨榈闹噶畲a。必須綁定在游戲?qū)ο笊喜拍荛_始它的生命周期。游戲?qū)ο罂梢岳斫鉃槟苋菁{各種組件的容器,游戲?qū)ο蟮乃薪M件一起決定了這個對象的行為和游戲中的表現(xiàn)
    2021-06-06
  • C# 多線程更新界面的錯誤的解決方法

    C# 多線程更新界面的錯誤的解決方法

    這篇文章主要介紹了C# 多線程更新界面的錯誤方法,由于一個線程的程序,如果調(diào)用一個功能是阻塞的,那么就會影響到界面的更新,導(dǎo)致使用人員操作不便。所以往往會引入雙線程的工作的方式,主線程負(fù)責(zé)更新界面和調(diào)度,而次線程負(fù)責(zé)做一些阻塞的工作,便有了下面春雨里方法
    2021-10-10
  • WinForm通過操作注冊表實現(xiàn)限制軟件使用次數(shù)的方法

    WinForm通過操作注冊表實現(xiàn)限制軟件使用次數(shù)的方法

    這篇文章主要介紹了WinForm通過操作注冊表實現(xiàn)限制軟件使用次數(shù)的方法,結(jié)合實例形式分析了WinForm操作注冊表的原理、步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-06-06

最新評論