gpt4 book ai didi

c# - 如何计算 HttpRequestMessage 的大小?

转载 作者:行者123 更新时间:2023-12-03 14:49:56 27 4
gpt4 key购买 nike

假设我有一个像这样构建的 HttpRequestMessage 对象:

var request = new HttpRequestMessage(HttpMethod.Post, uploadUrl)
{
Content = new ObjectContent(myObject, new JsonMediaTypeFormatter())
};
我会像这样发送:
using (var client = new HttpClient())
{
var response = await client.SendAsync(request, cancellationToken).ConfigureAwait(false);
}
有没有办法在发布之前计算请求有效负载的大小(以字节为单位)?我问的原因是因为我将把这个请求提交给第 3 方 API,我知道如果它超过预定的最大大小,API 将拒绝我的请求。我想如果我可以计算请求中有效负载的大小,我可以避免发布超过此最大大小的请求。

最佳答案

我用 :

requestMessage.Headers.ToString().Length +                  // Header Length
(requestMessage.Content?.Headers.ContentLength ?? 0); // Content Length
您还可以读取内容数据并计算其大小:
public async Task<long> GetRequestSizeAsync(HttpRequestMessage requestMessage)
{
var reader = requestMessage.Headers.ToString();
var content = await requestMessage.Content.ReadAsStringAsync();
return reader.Length + content.Length;
}
同步版本:
public long GetRequestSize(HttpRequestMessage requestMessage)
{
var reader = requestMessage.Headers.ToString();
var content = requestMessage.Content.ReadAsStringAsync().Result;
return reader.Length + content.Length;
}

关于c# - 如何计算 HttpRequestMessage 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46508589/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com