.NET提供了一个MultipartFormDataContent的类型用于传输多媒体数据
public async Task<dynamic> SendFile(Stream file,string url){
// 将流类型的数据打包进StreamContent类中
StreamContent streamContent = new StreamContent(file);
// 为数据添加标头
streamContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream");
// 添加其他需要的字段内容
StringContent prop = new StringContent("content");
// 创建客户端,发送请求
using(HttpClient client = new Client()){
// 添加所需要的请求头,例如Authorization
client.DefaultRequestHeaders.Add("name", "value");
MultipartFormDataContent form = new MultipartFormDataContent();
form.Add(streamContent, "your_file_prop_name", fileName);
form.Add(stringContent, "your_prop_name");
// 返回内容处理
HttpResponseMessage response = await client.PostAsync(url, form);
if (response.IsSuccessStatusCode)
{
string res = await response.Content.ReadAsStringAsync();
// 用字典进行接收,JsonConvert为解析Json的帮助类
var dto = JsonConvert.DeserializeObject<Dictionary<string, string>>(res);
return dto;
}
}
}