You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#控制台应用使用HttpClient按指定格式上传文件问题求助

C# 控制台应用formdata格式文件上传实现方案

根据你给出的接口要求,需要使用MultipartFormDataContent构造符合规范的表单请求体,完整实现代码如下:

using System.Net.Http.Headers;

// 你已有的初始化代码
HttpClientHandler _manipulador = new HttpClientHandler();
HttpClient _cliente = new HttpClient(_manipulador);
string tokenAplicacao_ = "实际业务Token值";
_cliente.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue(
        "Bearer", tokenAplicacao_);

// ------------------- 请求体构造代码 -------------------
string uploadUrl = "实际上传接口地址";
string filePath = @"C:\test\target_file.xlsx"; // 替换为本地文件的实际路径

using var formContent = new MultipartFormDataContent();
// 读取文件流添加到表单,表单key对应要求的"arquivos"
using var fileStream = File.OpenRead(filePath);
var streamContent = new StreamContent(fileStream);
// 可根据文件实际类型调整Content-Type,通用二进制类型为application/octet-stream
streamContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/octet-stream");
formContent.Add(streamContent, "arquivos", Path.GetFileName(filePath));

// 发送POST请求
var response = await _cliente.PostAsync(uploadUrl, formContent);

// 响应结果处理
if (response.IsSuccessStatusCode)
{
    string result = await response.Content.ReadAsStringAsync();
    Console.WriteLine($"上传成功,返回内容:{result}");
}
else
{
    Console.WriteLine($"上传失败,状态码:{response.StatusCode},错误信息:{await response.Content.ReadAsStringAsync()}");
}

提示:如果使用低版本C#,需要将Main方法声明为static async Task Main(string[] args)才能使用await语法

常见问题排查点

  • 确认程序运行身份对目标文件有读取权限,文件路径不存在特殊字符或空格
  • 若接口要求指定文件的MIME类型,替换application/octet-stream为对应类型即可
  • 多文件上传场景下,重复构造StreamContent添加到formContent即可

内容的提问来源于stack exchange,提问作者Ronye Peterson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:24:03