【问题标题】:Web Api Request Content Length Double the File SizeWeb Api 请求内容长度是文件大小的两倍
【发布时间】:2017-10-27 04:35:56
【问题描述】:

我从我的 MVC 应用上传了一个 3.5 MB 的文件。当我将该文件发送到我的 Web api 端点时,我注意到请求的内容长度是文件大小的两倍 (7 MB)。

我用一个 5 MB 的文件测试了这个理论,当我发送到 web api 时,内容长度果然是 10 MB。

下面是我如何将文件发送到我的 web api 端点:

using (HttpClient client = new HttpClient())
{
    client.BaseAddress = new Uri(url);
    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

    return await client.PostAsync(requestUri, new StringContent(serializedContent, Encoding.Unicode, "application/json"));
}

我在 POST 方法中从我的 MVC 控制器调用此方法。为什么我的内容长度会加倍?

更新: 我应该注意我正在使用 JSON.NET 的 JsonConvert.SerializeObject 方法将包含字节数组的对象转换为字符串

【问题讨论】:

    标签: model-view-controller json.net asp.net-web-api2


    【解决方案1】:

    您使用的是Encoding.Unicode,它默认使用 16 位字符。如果您想节省大约一半的空间,请使用Encoding.UTF8,它默认使用 8 位字符。请注意,不能仅用 8 位表示的字符将使用多个字节。

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      • 2017-06-22
      • 2020-12-04
      • 1970-01-01
      相关资源
      最近更新 更多