C# 中从网络上下载文件保存到本地文件
下面是C#中常用的从Internet上下载文件保存到本地的一些方法,没有太多的技巧。
1.通过 WebClient 类下载文件
WebClient webClient = new WebClient();
webClient.Encoding = Encoding.UTF8; //这里使用DownloadString方法,如果是不需要对文件的文本内容做处理,直接保存,那么可以直接使用功能DownloadFile(url,savepath)直接进行文件保存。
string outText = webClient.DownloadString("https://blog.csdn.net/zxf122895/article/details/77853703");
File.WriteAllText("D:\\test1.html", outText);
2. 使用 WebClient 进行图片下载
主要思路是通过 WebClient 的 DownloadData 方法下载图片的二进制数据,在通过 MemoryStream 转换为内存流。最后通过 Image 类的 FromStream 方法获取 Image 对象,调用 Image 的 Save(savePath,ImageFormat) 方法保存即可。
WebClient webClient = new WebClient();
Byte[] imgData = webClient.DownloadData("imgurl");
Stream ms = new MemoryStream(imgData);
ms.Position = ;
Image img = Image.FromStream(ms);
img.Save(@"D:\111.jpg", ImageFormat.Jpeg);
3.通过 HttpClient 方法
private static async Task<string> GetMethod(string url)
{
using (HttpClient httpClient = new HttpClient())
{
HttpResponseMessage response = await httpClient.GetAsync(url);
response.EnsureSuccessStatusCode();
//同样的,在此处可通过 ReadAsStreamAsync()方法,以流的方式下载指定文件(或者将网络流通过 MemoryStream 转换为内存流,再转换为byte进行存储或保存),再通过 Image 对象从流中读取图片文件。
string retString = await response.Content.ReadAsStringAsync();
File.WriteAllText("D:\\index.html", retString);
return retString;
}
}
4.HttpWebRequest 方式
             HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://Room/6/2/00/0027a4a8-23e5-42e9-ae95-55f4c99fb8db.html");
                 httpWebRequest.Method = "GET";
                 using (WebResponse response = httpWebRequest.GetResponse())
                 {
                     Stream stream = response.GetResponseStream();
                     StreamReader streamReader = new StreamReader(stream, Encoding.UTF8);
                     File.WriteAllText("D:\\123456.html", streamReader.ReadToEnd());
                 }
C# 中从网络上下载文件保存到本地文件的更多相关文章
- Java读取oracle数据库中blob字段数据文件保存到本地文件(转载)
		
转自:https://www.cnblogs.com/forever2698/p/4747349.html package com.bo.test; import java.io.FileOutput ...
 - 【Jmeter】jmeter提取response中的返回值,并保存到本地文件--BeanShell后置处理器
		
有个需求,需要在压测环境中,创建几十万的账号数据,然后再根据创建结果,查询到某些账号信息. 按照之前我的做法,直接Python调用API,然后再数据库查询: 但是近期所有开发人员的数据库访问权限被限制 ...
 - JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(三),多线程断点下载
		
一 前言 本篇博客是<JWebFileTrans(JDownload):一款可以从网络上下载文件的小程序>系列博客的第三篇,本篇博客的内容主要是在前两篇的基础上增加多线程的功能.简言之,本 ...
 - JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(二)
		
一 前言 本文是上一篇博客JWebFileTrans:一款可以从网络上下载文件的小程序(一)的续集.此篇博客主要在上一篇的基础上加入了断点续传的功能,用户在下载中途停止下载后,下次可以读取断点文件, ...
 - JDownload:  一款可以从网络上下载文件的小程序第四篇(整体架构描述)
		
一 前言 时间过得真快,距离本系列博客第一篇的发布已经过去9个月了,本文是该系列的第四篇博客,将对JDownload做一个整体的描述与介绍.恩,先让笔者把记忆拉回到2017年年初,那会笔者在看Unix ...
 - Python3.4 获取百度网页源码并保存在本地文件中
		
最近学习python 版本 3.4 抓取网页源码并且保存在本地文件中 import urllib.request url='http://www.baidu.com' #上面的url一定要写明确,如果 ...
 - php 下载保存文件保存到本地的两种方法
		
第一种: 1 <? ?> 或 <?php //下载文件保存到本地//www.jbxue.comfunction downfile($fileurl){ob_start(); $fil ...
 - 网络编程---(数据请求+slider)将网络上的大文件下载到本地,并打印其进度
		
网络编程---将网络上的大文件下载到本地,并打印其进度. 点击"開始传输"button.将网络上的大文件先下载下来,下载完毕后,保存到本地. UI效果图例如以下: watermar ...
 - java 文件保存到本地
		
private void savePic(InputStream inputStream, String fileName) { OutputStream os = null; try { Strin ...
 
随机推荐
- Dubbo学习笔记3:Dubbo管理控制台与监控中心的搭建
			
Dubbo源码下载与编译 本文来讲下如何在Dubbo源码编译后,得到用于搭建管理控制台的war包和监控平台的jar包. 首先需要到Github上下载Dubbo的源码,解压后如下: 在dubbo-2.5 ...
 - Bittersweet——NOIP2018 游记
			
p { font-size: 16px; line-height: 1.5em; } blockquote { font-family: 'Times New Roman', 楷体; text-ali ...
 - [转载]strtok函数和strtok_r函数
			
1.一个应用实例 网络上一个比较经典的例子是将字符串切分,存入结构体中.如,现有结构体 typedef struct person{ char name[25]; char sex[1 ...
 - jQuery插件开发中$.extend和$.fn.extend辨析
			
jQuery插件开发分为两种: 1 类级别 类级别你可以理解为拓展jquery类,最明显的例子是$.ajax(...),相当于静态方法. 开发扩展其方法时使用$.extend方法,即jQuery. ...
 - iOS程序启动过程笔记
			
CHENYILONG Blog 笔记 一.iOS程序的完整启动过程(有storyboard)1.先执行main函数,main内部会调用UIApplicationMain函数 2.UIApplicati ...
 - C/S模式和B/S模式
			
C/S模式和B/S模式 1.C/S模式(Client/Server,客户机/服务器模式) 如QQ 暴风影音,PPlive等应用软件都是C/S模式 是一种软件系统结构的一种,C/S模式是基于企业内部网络 ...
 - Redis—数据结构之sds
			
Redis是一个Key Value数据库.Redis有5种数据类型:字符串.列表.哈希.集合.有序集合.而字符串的底层实现方法之一就是使用sds.以下描述中请读者注意区分sds是指简单动态字符串这一数 ...
 - PostgreSQL内核分析——BTree索引
			
文中附图参考至<PostgreSQL数据库内核分析> (一)概念描述 B+树是一种索引数据结构,其一个特征在于非叶子节点用于描述索引,而叶子节点指向具体的数据存储位置.在PostgreSQ ...
 - python字典解析
			
import json # coding: utf-8 from functools import singledispatch from collections import abc import ...
 - ajax局部刷新后里面的jquery事件失效的解决方法
			
live() 与bind()作用基本一样. 最重要区别:live()可以将事件绑定到当前和将来的元素(eg:为id=zy元素绑定点击事件,而当你用js动态生成一个节点并插入到dom文档结构中时,如果你 ...