C# 执行报错 响应过早结束要如何修改?public string Executestring url HttpMethod method string requestString Dictionarystring string dicHeaders string accept = applicationjson int timeoutSecond = 120
在C#中,执行报错响应过早结束的问题通常是由于未正确处理异步操作导致的。可以尝试将执行过程改为异步操作并使用await关键字来等待结果的返回。
以下是修改后的代码示例:
public async Task
var request = new HttpRequestMessage(method, url)
{
Content = new StringContent(requestString),
};
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
if (dicHeaders != null)
{
foreach (var header in dicHeaders)
{
if (!String.Equals("Content-Type", header.Key, StringComparison.CurrentCultureIgnoreCase))
{
// 在不验证的情况下添加
request.Headers.TryAddWithoutValidation(header.Key, header.Value);
}
}
}
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(accept) { CharSet = "utf-8" });
var response = await client.SendAsync(request); // 使用await等待异步操作完成
if (response.IsSuccessStatusCode)
{
var result = await response.Content.ReadAsStringAsync(); // 使用await读取响应内容
return result;
}
else
{
var result = await response.Content.ReadAsStringAsync(); // 使用await读取响应内容
throw new CustomerHttpException($"接口请求错误,错误代码{response.StatusCode},错误原因{response.ReasonPhrase}");
}
}
catch (Exception E)
{
throw;
}
}
通过将Execute方法修改为异步操作,并使用await关键字等待异步操作完成后返回结果,可以解决执行报错响应过早结束的问题
原文地址: https://www.cveoy.top/t/topic/h02r 著作权归作者所有。请勿转载和采集!