C#中的WebRequest与WebResponse抽象类、DNS静态类、Ping类介绍_第1页
C#中的WebRequest与WebResponse抽象类、DNS静态类、Ping类介绍_第2页
C#中的WebRequest与WebResponse抽象类、DNS静态类、Ping类介绍_第3页
C#中的WebRequest与WebResponse抽象类、DNS静态类、Ping类介绍_第4页
C#中的WebRequest与WebResponse抽象类、DNS静态类、Ping类介绍_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第C#中的WebRequest与WebResponse抽象类、DNS静态类、Ping类介绍1、WebRequest:

对统一资源标识符(URI)发出请求。这是一个abstract类。

WebRequest的派生类:PackWebRequest、FileWebRequest、FtpWebRequest、HttpWebRequest

重要:我们不建议你使用WebRequest或其派生的类的新的开发。Net4.5以上请改用System.Net.Http.HttpClient类。

2、WebResponse

提供来自统一资源标识符(URI)的响应。这是一个abstract类。

WebResponse派生类:PackWebResponse、FileWebResponse、FtpWebResponse、HttpWebResponse

客户端应用程序不会创建WebResponse对象直接;通过调用WebRequest实例的GetResponse方法来创建。

1、同步模式

WebRequestrequest=WebRequest.Create("");//可以将request强制转换为HttpWebRequest,以设置和获取特定的属性

request.Credentials=CredentialCache.DefaultCredentials;//也可以设置代理request.Proxy..

request.Timeout=1000;

WebResponseresponse=request.GetResponse

();//获取响应.有异步方法:Begin/EndGetResponse

Streamstream=response.GetResponseStream();//

获取响应流,读取响应流,进行下载

using(StreamReaderreader=newStreamReader(stream,Encoding.UTF8))//也可以stream.Read(buffer)

Console.WriteLine(reader.ReadToEnd());

}

2、异步模式

WebRequestrequest=WebRequest.Create("");//可以将request强制转换为HttpWebRequest,以设置和获取特定的属性

request.BeginGetResponse(ar={

WebRequestrequest_1=(WebRequest)ar.AsyncState;

WebResponseresponse=request_1.EndGetResponse(ar);

Streamstream=response.GetResponseStream();//获取响应流

using(StreamReaderreader=newStreamReader(stream,Encoding.UTF8))//也可以stream.Read(buffer)

Console.WriteLine(reader.ReadToEnd());

},request);

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

voidMain()

GetResponseAsync();

publicasyncvoidGetResponseAsync()

WebRequestrequest=WebRequest.Create("");//可以将request强制转换为HttpWebRequest,以设置和获取特定的属性

WebResponseresponse=awaitrequest.GetResponseAsync()asWebResponse;

Streamstream=response.GetResponseStream();//获取响应流

using(StreamReaderreader=newStreamReader(stream,Encoding.UTF8))//也可以stream.Read(buffer)

Console.WriteLine(reader.ReadToEnd());

}

三、上传:

1、HTTP上传:

Encodingencoding=Encoding.Default;

HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create("");

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;

Streamstream=request.GetRequestStream();//获取请求流,进行写入流

,进行上传或者异步:Begin/EndGetRequestStream

stream.Write(buffer,0,buffer.Length);

HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();

using(StreamReaderreader=newStreamReader(response.GetResponseStream(),Encoding.UTF8))

Console.WriteLine(reader.ReadToEnd());

}

2、FTP上传文件代码实现:(对于FTP,微软建议使用第三方工具)

stringftphost="";

//herecorrecthostnameorIPoftheftpservertobegiven

stringftpfullpath="ftp://"+ftphost+"/testfolder/testfile.xml";

FtpWebRequestftp=(FtpWebRequest)FtpWebRequest.Create(ftpfullpath);

ftp.Credentials=newNetworkCredential("userid","password");

//useridandpasswordfortheftpservertogiven

ftp.KeepAlive=true;

ftp.UseBinary=true;

ftp.Method=WebRequestMethods.Ftp.UploadFil;

FileStreamfs=File.OpenRead(@"c:\testfile.xml");

byte[]buffer=newbyte[fs.Length];

fs.Read(buffer,0,buffer.Length);

fs.Close();

Streamftpstream=ftp.GetRequestStream();

ftpstream.Write(buffer,0,buffer.Length);

ftpstream.Close();

FtpWebRequest与FtpWebResponse完成FTP操作

FTP工具FileZilla、WinSCP、FTP类库FluentFTP

四、DNS静态类

Dns类是一个静态类,从Internet域名系统(DNS)中检索有关特定主机的信息。

DNS查询中的主机信息返回的实例中IPHostEntry类。如果指定的主机在DNS数据库中,有多个条目IPHostEntry包含多个IP地址和别名。

1、Dns类方法

GetHostName()获取本地计算机的主机名。GetHostAddresses(String)返回指定主机的Internet协议(IP)地址。返回IPAddress[]数组GetHostEntry(String)将主机名或IP地址解析为IPHostEntry实例。GetHostByAddress(String)根据IP地址创建IPHostEntry实例。GetHostEntry(IPAddress)将IP地址解析为IPHostEntry实例。GetHostByAddress(IPAddress)根据指定的IPAddress创建IPHostEntry实例。Resolve(String)将DNS主机名或IP地址解析为IPHostEntry实例。

2、IPHostEntry属性

AddressList获取或设置与主机关联的IP地址列表。返回IPAddress[]数组Aliases获取或设置与主机关联的别名列表。HostName获取或设置主机的DNS名称。

五、Ping类

Ping类位于System.Net.NetworkInformation下。

boolonline=false;//是否在线

Pingping=newPing();

PingReplypingReply=ping.Send("91");//主机名或者IP地址

if(pingRepl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论