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

如何修改RestSharp代码生成符合规范的multipart/form-data文件上传请求

问题根因

你当前的代码错误地将参数类型指定为ParameterType.RequestBody,导致RestSharp会把所有请求体参数拼接为application/x-www-form-urlencoded格式的键值对字符串(也就是你看到的格式2),而不会生成标准的multipart分段结构。同时手动指定Content-Type和boundary也属于多余操作,反而可能干扰RestSharp的请求构造逻辑。

修正后代码(适配RestSharp 107+ 主流版本)

var client = new RestClient("https://www.myapiurl.com/api/v1/add");
var restRequest = new RestRequest(Method.POST);
// 关键配置:强制使用multipart/form-data格式,自动生成boundary
restRequest.AlwaysMultipartFormData = true;

// 直接添加普通文本参数即可,不需要额外指定参数类型
restRequest.AddParameter("id", "7926456167");
restRequest.AddParameter("filename", "test2.txt");
restRequest.AddParameter("description", "");
restRequest.AddParameter("attachment", "dGhpcyBpcyBhIHRlc3Q=");

// 执行请求
var response = await client.ExecutePostAsync(restRequest);

关键修改说明

  • 移除了手动设置的Content-Type请求头,RestSharp生成multipart请求时会自动填充正确的Content-Type和随机boundary值
  • 添加restRequest.AlwaysMultipartFormData = true配置,强制RestSharp将请求体格式化为标准的multipart/form-data分段结构,和你要求的格式1完全一致
  • 不需要为普通参数指定multipart/form-data和ParameterType.RequestBody参数类型,默认的参数类型在开启AlwaysMultipartFormData后会自动转为form-data的分段项

修改完成后大文件base64参数也可以正常提交,不会出现格式2的长度超限问题。


内容的提问来源于stack exchange,提问作者John Livermore

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:12:02