[英]How to read application/pdf content type from HttpResponseMessage and convert it into stream
我有一个 Web API 连接到另一个端点。 来自第二个 Web API 的 GET 方法返回应用程序/pdf 内容类型。 在这里,我成功获取了数据。 如何将 response.Content 转换为文件/内存 stream 并返回值?
public async Task<T> functionname<T>(ApplicationApiRoutes.APIRoutes route, string token = "", int TimeoutMinutes = 5, CancellationToken cancellationToken = default, params string[] routeparams)
{
T Response = default;
try
{
ApplicationApiRoutes._RouteHashTable.TryGetValue(route, out string FormattedRoute);
FormattedRoute = String.Format(FormattedRoute, routeparams);
using (var request = new HttpRequestMessage(HttpMethod.Get, $"{FormattedRoute}"))
{
if (!String.IsNullOrWhiteSpace(token))
{
request.Headers.Add("Cookie", $"access_token="+ token);
}
using (var response = await _httpclient
.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, cancellationToken))
{
response.EnsureSuccessStatusCode();
var result = await response.Content.ReadAsStringAsync();
Response = JsonConvert.DeserializeObject<T>(result, _jsonsettings);
}
}
}
catch (Exception ex)
{
}
return Response;
}
假设您想在检索文件后下载文件,请在您的 controller 操作方法中尝试以下操作:
var fileStream = new MemoryStream();
using (var file = await _httpClient.GetStreamAsync(request).ConfigureAwait(false))
{
await file.CopyToAsync(fileStream);
}
fileStream.Position = 0;
return File(fileStream , "application/pdf", "filename.pdf");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.