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

HttpClient发送MultipartFormDataContent遇500错误,预加载可解决

HttpClient发送Multipart Form Data请求时的500错误问题

我调用一个接收Multipart Form Data请求的REST接口,接口包含一个文件字段,测试使用的是42k的PNG图片。发送请求的代码如下:

using var content = new MultipartFormDataContent()
{
    { new StringContent(message.SubscriberId.ToString()), "subscriberId" },
    { new StringContent(message.TemplateName), "templateName" },
};

if (message.Attachment != null)
{
    var c = new ByteArrayContent(message.Attachment.Data);
    content.Add(c, "file", message.Attachment.Filename);
}

using var request = new HttpRequestMessage(HttpMethod.Post, "transactions")
{
    Content = content
};

//await request.Content.LoadIntoBufferAsync();

using var msg = await _httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, cancellationToken);

遇到的现象:

  • 注释掉await request.Content.LoadIntoBufferAsync();时,接口返回500内部服务器错误
  • 取消注释该行,或者调用ReadAsStringAsync()查看请求内容后,请求能正常执行
  • 仅发送文件的前12200字节时请求也能成功,但这个限制并非固定:部分小于该大小的图片仍会失败,而一张14k的图片无需预加载即可成功

情况分析:
部分图片能正常工作的现象表明REST接口可能存在问题,但预加载请求就能解决问题的情况,说明问题不完全出在接口端。

内容的提问来源于stack exchange,提问作者Simon Halsey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 20:33:17