下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- BIM实施方案资料
- 市场扩张计划策略书模板与实施方案
- 企业品牌宣传与推广标准化手册
- 供应链管理优化策略与工具包
- 技术支持响应快速流程与知识库工具
- 吉林省前郭县联考2026届初三下学期教育质量调研(二模)英语试题含解析
- 江苏省泰州市泰兴市西城达标名校2026年初三一模试题(语文试题文)试题含解析
- 行业诚信领域活动启动承诺书(6篇)
- 居民区绿化管理保证承诺书6篇
- 2026年建筑工地消防安全专项方案编制指南
- 档案数字化项目立项申请书
- (正式版)DB51∕T 2787-2021 《研学旅行实践活动设计规范》
- 2026年温州永嘉县国有企业面向社会公开招聘工作人员12人笔试参考题库及答案解析
- 2026四川海大橡胶集团有限公司主业子公司第一次社会招聘49人笔试备考题库及答案解析
- 2026年六安职业技术学院单招职业适应性测试题库含答案详解(能力提升)
- 2026年南京信息职业技术学院单招职业适应性测试题库带答案详解(b卷)
- 2026湖南省卫生健康委直属事业单位招聘185人笔试模拟试题及答案解析
- 2025江西赣州水务集团招聘47名专业技术人员笔试历年典型考点题库附带答案详解
- 2026年河南农业大学招聘辅导员(硕士)10名备考题库及1套参考答案详解
- 心力衰竭的护理案例分析与实践
- 05S502 室外给水管道附属构筑物
评论
0/150
提交评论