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



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

我用一个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控制器调用这个方法。为什么我的内容长度增加了一倍?

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

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

相关内容

  • 没有找到相关文章

最新更新