首页 程序笔记 C# HttpClient发送http请求上传文件

C# HttpClient发送http请求上传文件

在C#7.1之后,net推出HttpClient类代替WebRequest, HttpWebRequest, ServicePoint, and WebClient。

GetAsync(String)以异步操作将 GET 请求发送给指定 URI。

普通的get请求获取请求消息 返回的HttpResponseMessage包含所有的响应信息,比如说状态码,响应的消息头,相应的json等都可以用这个来处理

GetByteArrayAsync(String)将 GET 请求发送到指定 URI 并在异步操作中以字节数组的形式返回响应正文。

using (var webClient = new System.Net.Http.HttpClient())
{
var bytes = await webClient.GetByteArrayAsync(vodeourl.VideoUrl);
//var fileStream = new FileStream($"{videoid}.mp4", FileMode.Create, FileAccess.Write);
//fileStream.Write(stream, 0, stream.Length);
//fileStream.Dispose();
}

HttpClient添加cookies

var handler = new HttpClientHandler();
var cookieContainer = new CookieContainer();
cookieContainer.Add(new Uri(url), new Cookie("cookie_name", "cookie_value"));
handler.CookieContainer = cookieContainer;
using(var webClient = new System.Net.Http.HttpClient(handler))
{
webClient.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0");
webClient.DefaultRequestHeaders.Add("Connection", "Keep-Alive");
webClient.DefaultRequestHeaders.Add("Keep-Alive", "timeout=600");
var aa = webClient.GetStringAsync(url).Result;
return aa.ToString();
//await Console.Out.WriteLineAsync(str);
//var fileStream = new FileStream($"{videoid}.mp4", FileMode.Create, FileAccess.Write);
//fileStream.Write(stream, 0, stream.Length);
//fileStream.Dispose();
}

请求Json格式 或者 通过Post请求数据:application/x-www-form-urlencoded

var httpClient = new HttpClient();
var url = "http://192.168.0.9:9000/Demo/PostUrlCode";
var response = await httpClient.PostAsync(url, new FormUrlEncodedContent(new List<KeyValuePair<string, string>>()
{
new KeyValuePair<string, string>("name","小明"),
new KeyValuePair<string, string>("age","20")
}));
var str = await response.Content.ReadAsStringAsync();

HttpClient上传文件

using (HttpClient client = new HttpClient())
{
var content = new MultipartFormDataContent();
//添加字符串参数,参数名为qq
content.Add(new StringContent("123456"), "qq");

string path = Path.Combine(System.Environment.CurrentDirectory, "1.png");
//添加文件参数,参数名为files,文件名为123.png
content.Add(new ByteArrayContent(System.IO.File.ReadAllBytes(path)), "file", "123.png");

var requestUri = "http://192.168.1.108:56852/api/Test/SaveFile";
var result = client.PostAsync(requestUri, content).Result.Content.ReadAsStringAsync().Result;

Console.WriteLine(result);
}

HttpClient请求超时设置

var httpClient = new HttpClient();
httpClient.Timeout = TimeSpan.FromSeconds(10); // 设置超时时间为10秒

var url = "xxxxxxxxxx";
List<KeyValuePair<string, string>> fromdic = dic.ToList();
var sign = Tool.Sign(dic, key);
fromdic.Add(new KeyValuePair<string, string>("sign", sign));

CancellationTokenSource cts = new CancellationTokenSource();
cts.CancelAfter(TimeSpan.FromSeconds(10)); // 设置取消请求的时间为10秒

声明 本站内容部分来源于网络,仅供参考学习交流并不代表本站观念,如无意中侵犯您的权益( 包括/图片/视频/个人隐私等信息 )请来信告知,本站收到信息会尽快处理并回访,联系邮箱:laodilailiao@foxmail.com

站心网

在C#7.1之后,net推出HttpClient类代替WebRequest, HttpWebRequest, ServicePoint, and WebClient。 GetAsyn..

为您推荐

.NET 主程序的.dll.config文件有什么用?

.dll.config 文件通常是在开发过程中自动生成的,它的主要作用是为某个类库(.dll 文件)提供一个独立的配置文件,以便开发者可以为该类库单独定义或测试配置项。以下是生成 .dll.config 文件的原因和机制:1. 配置..

.NET C#连接FTP实现文件上传下载

在 .NET 中可以使用 System.Net.FtpWebRequest 类来连接 FTP 服务器,实现文件上传和下载。以下是实现文件上传和下载的完整代码示例。1. 上传文件到 FTP 服务器using System;using System.IO;using System.Net;class..

.net 通过 HttpClient 下载文件同时报告进度的方法

通过 HttpClient 的 ContentLength 很多时候都可以拿到下载的内容的长度,通过 ReadAsync 可以返回当前读到的长度,将读取到的长度加起来就是已经下载的长度看起来很简单,于是直接给代码private static async Task ..

.NET C#中的Func、Predicate和Expression用法详解

在 .NET C# 中,Func、Predicate 和 Expression 是非常常见的委托类型和表达式树,广泛用于函数式编程、数据查询(如 LINQ)以及表达式编译等场景。以下是它们的详细用法和区别。1. FuncFunc 是一个通用委托,用于表..

SQL语句中的EXISTS用法示例

EXISTS 是 SQL 中用于判断子查询是否返回结果的关键字。它通常用于 WHERE 子句中,结合子查询一起使用。如果子查询返回至少一行数据,EXISTS 会返回 TRUE,否则返回 FALSE。EXISTS 用法示例假设有两个表:employees..

ASP.NET如何将Views文件夹从项目分离

将 Views 文件夹从 ASP.NET 项目中分离是一个常见需求,比如为了实现模块化或分层架构。以下是实现此功能的完整步骤,从项目中分离 Views 文件夹,将其移到另一个独立的文件夹或项目中,并确保视图渲染仍然正常。1. ..

.NET C# 读取编辑.AVIF图片文件

在 .NET 中读取和编辑 .AVIF 图片文件需要特定的库支持,因为 System.Drawing 等内置功能不直接支持 AVIF 格式。目前可以通过以下方式在 .NET 中实现对 AVIF 文件的读取和编辑:方法一:使用 ImageMagick 的 .NET 封..

.NET C# SkiaSharp读取.AVIF图片文件报错

SkiaSharp 目前对 .AVIF 格式的支持可能依赖于具体的版本和底层库的配置。如果在使用 SkiaSharp 时尝试读取 .AVIF 文件报错,以下是一些可能的原因和解决方案:1. 检查 SkiaSharp 的版本SkiaSharp 的支持功能取决于..

无法加载文件或程序集 'XXXXX' 或其依赖项。访问被拒绝

遇到 “无法加载文件或程序集 'XXXXX' 或其依赖项。访问被拒绝” 错误时,通常是由于权限问题或文件夹、程序集引用配置不当所引起。下面是一些常见的原因及解决方法:1. 文件或程序集权限问题如果服务器或..

.NET 使用HttpClientFactory+Polly替代直接使用HttpClient

在 .NET 开发中,了解如何发出高效、可靠且可伸缩的 Web 请求至关重要。曾几何时,在 .NET 的土地上,开发人员习惯于发出 Web 请求。这很简单:var client = new HttpClient();var response = await client.GetAsync..

文件上传JavaScript库FilePond使用教程

传统的文件上传控件往往显得笨拙且不够用户友好。FilePond的出现,为Web文件上传带来了革命性的改变。本文将详细介绍FilePond这一JavaScript库,探讨它如何优化文件上传流程,并提供无与伦比的用户体验。什么是FileP..

高效且灵活的C++库Vince's CSV Parser用法示例

在当今的软件开发中,数据的处理和分析占据了核心地位。而CSV(逗号分隔值)文件格式因其简洁性和广泛的兼容性,成为数据交换的常用格式。然而,处理CSV文件并非易事,尤其是当文件规模庞大或格式复杂时。为了解决这..

Web应用安全之八种安全的文件上传方式

为了让最终用户将文件上传到您的网站,就像是给危及您的服务器的恶意用户打开了另一扇门。即便如此,在今天的现代互联网的Web应用程序,它是一种常见的要求,因为它有助于提高您的业务效率。在Facebook和Twitter等..

C#发送邮件代码简洁示例(附源码下载)

C#发送邮件,主要使用的是System.Net.Mail命名空间下的方法实现,方法很简单,短短十几行代码即可完成发送,具体代码如下。 try { MailMessage myMail = new MailMessage(); myMail.From = new MailAddress..

c# ThreadPool使用方法

ThreadPool类提供一个线程池,该线程池可用于发送工作项、处理异步 I/O、代表其他线程等待以及处理计时器。 线程池通过为应用程序提供一个由系统管理的辅助线程池使您可以更为有效地使用线程。一个线程监视排到线程..

WebClient上传文件方法UploadFile

测试环境 服务器端:Windows Server 2003,IIS6.0. 上传文件的代码: [csharp] view plaincopy在CODE上查看代码片派生到我的代码片 using (WebClient client = new WebClient() { Credentials = CredentialCache.De..

Parallel.ForEach和Foreach.For用法

.Net4.0中提供了新的命名空间:System.Threading.Tasks,用于提供并行计算的相关类,这里我主要介绍一个简单的类:Parallel,用于提供对并行循环和区域的支持。 简单来说,Parallel可以把一个普通的for或者foreac..

_ViewStart.cshtml文件的作用

在ASP.NET MVC 3.0中,新建项目后,Views目录下会出现一个这样的文件:_ViewStart.cshtml(对应Razor,C#,也可能是_ViewStart.vbhtml) 。 _ViewStart.cshtml这个文件会在所有View(.cshtml)被执行之前执行,主要..

.NET Core 3.0创建一个单独的可执行文件

一个独立的应用程序是一个很好的方式来共享您的应用程序,因为所有的组件、运行时和框架都包含在应用程序中。您只需提供application.exe文件,而不必担心其他计算机上是否存在框架或运行时安装状态。.NET Core 3.0预..

在ASP.NET Core 2.1中使用HttpClientFactory的3种方法

Microsoft在.NET Framework 4.5中引入了HttpClient,这是在.NET服务器端代码中使用Web API最流行的方法。但是,它存在一些严重的问题,比如处理HttpClient对象不会立即关闭套接字,影响性能的实例太多,以及singleto..

发表回复

返回顶部