Web Api 请求内容长度加倍的文件大小

Web Api Request Content Length Double the File Size

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

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

下面是我如何将文件发送到我的网络 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 方法将包含字节数组的对象转换为字符串

您使用的 Encoding.Unicode 默认使用 16 位字符。如果你想节省大约一半的 space 然后使用 Encoding.UTF8 默认情况下使用 8 位字符。请注意,不能仅用 8 位表示的字符将使用多个字节。