C#实现HTTP上传文件的方法,一般采用POST方法,可以通过以下步骤实现:
-
构建HTTP请求参数:我们需要指定文件的路径、文件名称、文件类型以及服务器地址等等。
-
打开文件,并读取文件内容:需要使用File类或者FileStream类进行文件的读取。
-
将文件内容放入HTTP请求体中:使用Stream将文件内容放入HTTP请求体中。
-
发送HTTP请求:使用HttpClient类发送请求。
-
解析HTTP响应:解析HTTP响应。
以下是两个代码示例,用于上传单个文件和多个文件:
示例一:上传单个文件
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
namespace HttpUploadFileDemo
{
class Program
{
static async Task Main(string[] args)
{
//上传文件的路径
string filePath = "D:\\test.txt";
//当上传到Web API时,该地址应该是API的地址
string uploadUrl = "http://localhost:9000/api/uploadfile";
//构建HTTP请求参数
var form = new MultipartFormDataContent();
//打开文件,并读取文件内容
var fileStream = new FileStream(filePath, FileMode.Open);
//将文件内容放入HTTP请求体中
form.Add(new StreamContent(fileStream), "file", Path.GetFileName(filePath));
//发送HTTP请求
var client = new HttpClient();
var response = await client.PostAsync(uploadUrl, form);
//解析HTTP响应
Console.WriteLine(response.StatusCode);
}
}
}
示例二:上传多个文件
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
namespace HttpUploadFileDemo
{
class Program
{
static async Task Main(string[] args)
{
//上传文件的路径列表
string[] filePaths = new string[] { "D:\\test.txt", "D:\\test2.txt" };
//当上传到Web API时,该地址应该是API的地址
string uploadUrl = "http://localhost:9000/api/uploadfiles";
//构建HTTP请求参数
var form = new MultipartFormDataContent();
foreach (var filePath in filePaths)
{
//打开文件,并读取文件内容
var fileStream = new FileStream(filePath, FileMode.Open);
//将文件内容放入HTTP请求体中
form.Add(new StreamContent(fileStream), "files", Path.GetFileName(filePath));
}
//发送HTTP请求
var client = new HttpClient();
var response = await client.PostAsync(uploadUrl, form);
//解析HTTP响应
Console.WriteLine(response.StatusCode);
}
}
}
以上是C#实现HTTP上传文件的方法及示例,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#实现HTTP上传文件的方法 - Python技术站