首页 > 其他分享 >WebClient类 详细使用教程

WebClient类 详细使用教程

时间:2024-04-10 11:14:53浏览次数:28  
标签:教程 http 示例 URI 详细 new 方法 WebClient

原文链接:https://blog.csdn.net/nutian/article/details/2913670     https://blog.csdn.net/m0_58015531/article/details/131322801

WebClient类

如果只想从特定的URI请求文件,则可以使用的最简单.NET基类就是System.Net.WebClient。这个类是非常高层的类,它主要用于执行带有一个或两个命令的操作。.NET Framework目前支持以http:、https:和file:标识符开头的URI。

注意:

术语URL(统一资源定位符)在新的技术规范中已不再使用,现在使用的是URI(统一资源标识符)。URI的含义大致与URL相同,但URI更通用,因为它不隐含正在使用的协议,如HTTP或FTP。

它支持同步和异步操作,并且可以使用多个线程同时下载或上传数据。

WebClient的优点包括:

简单易用,适合快速开发。
支持异步操作,可以提高程序的响应速度。
支持多线程操作,可以提高下载或上传数据的速度。


WebClient的缺点包括:

不支持自定义HTTP请求头。
不支持HTTP响应的详细信息,如状态码和响应头。
不支持流式传输,只能一次性下载或上传整个文件。

31.1.1  下载文件

使用WebClient类从Web站点下载文件时有两种方法,具体使用哪一种方法取决于文件内容的处理方式。如果只想把文件保存到磁盘上,就应该调用DownloadFile()方法。这个方法有两个参数:即文件的URI和保存所请求的数据的位置(路径和文件名):

WebClient Client = new WebClient();

Client.DownloadFile("http://www.Wrox.com/index.asp", "index.htm");

更为常见的是,应用程序需要处理从Web站点检索到的数据。为此,要使用OpenRead()方法,这个方法返回一个Stream引用。然后,就可以把数据从数据流中提取到内存中:

WebClient Client = new WebClient();

Stream strm = Client.OpenRead("http://www.Wrox.com/default.asp");

 

31.1.2  基本的Web客户示例

第一个示例将阐述怎样使用WebClient.OpenRead()方法。在这个示例中,我们将把下载的页面显示在ListBox控件中。把项目创建为标准的Windows C#应用程序,添加一个名为listBox1的列表框,将其docking 属性设置为DockStyle.Fill。在文件的开头,需要在using指令中添加System.Net和System.IO命名空间,然后对主窗体的构造函数进行以下改动:

public Form1()

{

   InitializeComponent();

   System.Net.WebClient Client = new WebClient();

   Stream strm = Client.OpenRead("http://www.wrox.com");

   StreamReader sr = new StreamReader(strm);

   string line;

   while ( (line=sr.ReadLine()) != null )

   {

      listBox1.Items.Add(line);

   }

  

   strm.Close();

}

在这个示例中,把System.IO命名空间的StreamReader类与网络数据流关联起来。这样,就可以使用更加有效的高层方法,例如ReadLine()方法,从数据流中以文本的形式获取数据。第30章讨论了把数据移动抽象化为数据流概念的优点,这个示例就充分体现出了这些优点。

这个示例的运行结果如图31-1所示。

 

图  31-1

在WebClient类中还有一个方法OpenWrite(),它可以返回一个可写的数据流,并把数据发送给URI。也可以指定该方法用于把数据发送给主机;默认的方法是POST。下面的代码段假定在本地机器上有一个可写的目录accept,这段代码在该目录下创建文件newfile.txt,其内容为"Hello World":

WebClient webClient = new WebClient();

 

Stream stream = webClient.OpenWrite("http://localhost/accept/newfile.txt","PUT");

 

StreamWriter streamWriter = new StreamWriter(stream);

streamWriter.WriteLine("Hello World");

streamWriter.Close();

 

31.1.3  上传文件

WebClient类还提供了UploadFile()方法和UploadData()方法。UploadFile()方法用于把指定的文件上传到指定的位置,其中的文件名已经给出;而UploadData()方法用于把二进制数据上传至指定的URI,那些二进制数据是作为字节数组提供的(还有一个DownloadData()方法,用于从URI中检索字节数组):

WebClient client = new WebClient();

client.UploadFile("http://www.ourwebsite.com/NewFile.htm",  "C://WebSiteFiles//NewFile.htm");

byte [] image;

// code to initialise image so it contains all the binary data for

// some jpg file

client.UploadData("http://www.ourwebsite.com/NewFile.jpg", image);

标签:教程,http,示例,URI,详细,new,方法,WebClient
From: https://www.cnblogs.com/Dongmy/p/16895789.html

相关文章

  • Python教程‘r’的使用技巧
    嗨,大家好!今天,我们将探讨Python中一个重要但经常被忽视的小技巧'r'。 在Python中,r是一个前缀,它用于处理原始字符串(rawstrings)。原始字符串与普通字符串不同,它们让你在字符串中使用反斜杠符号\而不必担心它们被解释成转义字符。为什么要使用原始字符串?原始字符串......
  • 博客园美化教程
    博客园美化教程前言之前一直想美化博客园,但一直没有找到比较喜欢的主题。最近找到了一个还比较满意的主题,SimpleMemory,特此分享。正文一、申请js权限首先点击这里--->博客后台-博客园(cnblogs.com),来到博客园后台管理页面,点击设置下滑,在基本设置里找到申请js权......
  • ArcGls10.8保姆式安装教程
    ArcGIS10.8保姆式安装教程ArcGIS是由美国Esri公司开发的一套地理信息系统软件,可进行地理信息数据的采集、管理、分析和发布等操作。ArcGIS10.8是ArcGIS系列的最新版本,具有更加强大的功能和更好的性能。本文将介绍ArcGIS10.8的保姆式安装教程,帮助您快速安装和配置ArcGIS10.......
  • intellij idea的快速配置详细使用
    IntelliJIDEA是一款功能强大的集成开发环境(IDE),可以用于开发各种类型的应用程序,如Java、Kotlin、JavaScript、Python等。它提供了许多快速配置选项,可以帮助开发人员更高效地开发代码。在这份文档中,我们将详细介绍IntelliJIDEA的快速配置使用方法,让您快速上手使用它。下载......
  • 2024年幻兽帕鲁/Palworld服务器部署指南:从入门到精通的实战教程
    随着幻兽帕鲁(Palworld)这款游戏的持续升温,越来越多的玩家渴望能够拥有自己的专属服务器,与好友们畅享不受限的组队冒险。好消息是,现在搭建幻兽帕鲁服务器,比以往任何时候都要简单。今天,就让我带你走进这个神秘而富有创意的幻兽世界,手把手教你如何轻松搭建自己的游戏服务器。一、......
  • 幻兽帕鲁/Palworld服务器部署教程:从入门到精通的完整创建流程
    近期,备受瞩目的游戏《幻兽帕鲁》风潮再起,无数热爱冒险与探索的玩家们都渴望在这片神秘的土地上留下自己的足迹。然而,随着玩家数量的激增,官方服务器开始显现出其不稳定性,卡顿、掉线等问题时有发生。这时,拥有一台专属的《幻兽帕鲁》游戏服务器便成了许多玩家的新追求。好消息是,......
  • 百度网盘2024永久免费svip免费兑换码及使用教程
    很多新手用户在使用百度网盘时找不到自己下载后的文件在哪,其实百度网盘安装之后就会有默认的下载路径,其实只要跟着小编下面的教程一起操作,就能快速找到文件的下载路径。百度网盘下载的文件在哪?https://snsyun.baidu.com/sl/mg8TQEO​​​​​​​电脑端下载路径:1、打开百......
  • Mac OS12虚拟机安装教程
    MacOS12虚拟机安装教程目录MacOS12虚拟机安装教程前置条件VMwareworkstation安装步骤!!!完成安装后先不要打开软件!!!解锁vmvare中macos安装功能处理VMware进程和服务解锁MacOS安装功能创建虚拟机安装MacOS12安装VMwareTools工具优化虚拟机mac系统结束语前置条件VMwareWork......
  • C语言分支语句和循环语句(非常详细的分支循环讲解)
    目录选择语句if-else语句if嵌套switch语句逻辑操作符!逻辑非&&逻辑与||  逻辑或循环语句while循环do-while循环for循环break和continue语句 break语句continue语句选择语句if-else语句if语句的语法形式if(表达式){语句}在C语言中非0为真,0为假......
  • Python教程-if条件判断
    Python教程-if条件判断作为软件开发者,我们总是努力编写干净、简洁、高效的代码。Python是一种解释型、高级、通用的编程语言,被全世界的程序员广泛使用。它以其简单性和可读性著称,使其成为初学者和有经验的程序员的最佳选择。用Python编程的一个最基本的方面是使用条件。P......