微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 C# 中使用 HttpClient 的 HTTP Rest 调用在字节数组大小变为 100 KB 左右时超时

如何解决在 C# 中使用 HttpClient 的 HTTP Rest 调用在字节数组大小变为 100 KB 左右时超时

我正在调用一个由我实现的 rest api post 方法,它具有普通的字符串参数和一个 fileData 字节数组。我只是使用 application/json From Body 技术来实现这个服务。

当我使用 HttpClient 从 C# 代码调用此 api 时,它适用于 10-20 KB 等较小的文件。但是当文件大小在 100-150 KB 左右时,PostAsync 方法在超时发生之前不会得到任何东西。但是当我从 angular 调用相同的 API 时,它也适用于较大的文件大小。

下面是我从客户端调用的 c# 代码块。请指导这里发生的事情。

Photo photo = new Photo
{
    CustomerMobile = row["CustomerMobile"].ToString(),PhotoCode = row["PhotoCode"].ToString(),PhotoSize = row["PhotoSize"].ToString(),TemplateId = int.Parse(row["TemplateId"].ToString()),CreatedDate = DateTime.Parse(row["CreatedDate"].ToString()),};

if (!string.IsNullOrEmpty(row["ExpiryDate"].ToString()))
    photo.ExpiryDate = DateTime.Parse(row["ExpiryDate"].ToString());
    
var data = File.ReadAllBytes(row["PhotoUrl"].ToString());

photo.FileData = data;
photo.FileName = Path.GetFileName(row["PhotoUrl"].ToString());

using var client = new HttpClient();
HttpResponseMessage response = null;

client.BaseAddress = new Uri(Settings.Configurations.APIBaseServerURL);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add(Settings.Configurations.Application,Settings.Configurations.ApplicationId);
client.DefaultRequestHeaders.Add(Settings.Configurations.SessionID,sessionID);

response = client.PostAsync(url,new StringContent(JsonConvert.SerializeObject(photo).ToString(),Encoding.UTF8,"application/json")).Result;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。