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

时间:2017-10-26 14:11:14

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

我从我的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方法将包含字节数组的对象转换为字符串

1 个答案:

答案 0 :(得分:1)

您正在使用默认情况下使用16位字符的Encoding.Unicode。如果要节省大约一半的空间,请使用默认使用8位字符的Encoding.UTF8。注意,不能用8位表示的字符将使用多个字节。