WebClient 四

WebClient(1、2、3)介绍了读数据流和下载远程网页数据流的相关内容。本节开始介绍向url 远程主机可写数据流写数据。同时还将介绍相关的的上传数据到远程主机上。

请看入如下事例代代码,及相关的代码实现其代码的剖析:


2 //写入数据流
3            byte[] postdata = System.Text.Encoding.ASCII.GetBytes(string.Format("{0}writeInfo",DateTime.Now.ToString("yyyy-MM-dd HH:ss")));
4            WebClient client = new WebClient();
5            Stream stream = client.OpenWrite("http://localhost:85/uploadfile.txt""PUT");
6            stream.Write(postdata, 0, postdata.Length);
7            stream.Close();

如上事例可以向远程主机谢数据,其实最关键的是获取一个可写的数据流,获取一个可写数据流向数据流中写入数据。其中WebClient.OpeWirte 核心实现其功能的是通过 WebRequest

创建一个事例后返回一个网络可写的数据流,代码分析如下:

  1   

2           WebRequest request = WebRequest.Create(new Uri("http://localhost:85/uploadfile.txt"));
3            request.Credentials = CredentialCache.DefaultCredentials;
4            request.Method = "PUT";
5            Stream stream =  request.GetRequestStream();
6            stream.Write(postdata, 0, postdata.Length);
7            stream.Close();

 如上2-4行实现了WebClient.openWrite的功能,这里只是些了核心的代码,真实是现实功能比这里要多许多相关的条件。 还有一点是需要把网络扩展是Web服务扩展中的WebDAV改为允许,默认是静止的。还有用于异步写数据的OpenWriteAsync ,有用篇幅限制。这里就不做过多介绍。

由于时间限制,由于时间时间有限。未完待续。。。 

原文地址:https://www.cnblogs.com/andyyu/p/2009576.html