c# - 如何从 HttpResponseData 对象获取状态代码和标头数据?
问题描述
我目前有一个带有 ASP.NET Core Web API 的 Blazor 客户端 (Wasm)。(都部署到 Azure)
ASP.NET Core Web API 返回一个 IActionResult,它在我的 BlazorClient 中转换为一个 HttpResponseMessage。
我想用触发的 Azure 函数 HTTP 替换我的 ASP.NET Core Web API。
Azure 函数是 .Net 5。(我必须这样做,因为我在解决方案中的所有其他项目都是 .Net 5)。
由于该函数是用 .Net 5 编写的,因此会返回一个 HttpResponseData 对象。
在我的 HttpResponseData 对象中,我有我想在我的客户端中测试的状态代码、我需要访问的标题数据(总计数),以及包含我的数据列表的正文。
当我从 Blazor 客户端调用 Azure 函数时,我无法访问标头数据。
当我使用 _httpClient.GetAsync 方法时,我在获取 Body 数据时也遇到了问题。
我能做的最好的事情就是使用 _httpClient.GetStringAsync 方法。这让我从身体中获取数据。
但是,我也想要状态代码和标题数据。
请参阅下面的代码。
public async Task<string> GetVpbDelegatesAsync2(int? pageNo, int? pageSize, string searchText)
{
var requestUri = $"{RequestUri.VpbDelegates}?pageNo={pageNo}&pageSize={pageSize}&searchText={searchText}";
var response = await _httpClient.GetAsync(requestUri);
//This line throws an exception. If I comment it out. I get my Body data
var total = response.Headers.GetValues("X-TotalCount").First();
return await _httpClient.GetStringAsync(requestUri);
}
所以我的问题是:
- 我怎样才能得到那个状态码?
- 如何获取我的身体数据?
- 如何获取我的标题数据
- 有谁知道客户端调用返回 HttpResponseData 的 Azure 函数的任何演示/代码示例。(我找不到任何例子。)
谢谢你的帮助。
编辑:只为那些在家跟踪的人:我能够获得状态代码,但我仍然无法获得标题数据。我在 PostMan 中进行了相同的调用,并且 Header 数据在那里。
编辑 2:我想出了如何从正文/内容中获取我的数据。但仍然没有得到 Header 数据。
解决方案
该HttpResponseData
对象仅在功能代码的上下文中。你的HttpClient
对象仍然会HttpResponseMessage
像@Greg 提到的那样返回。
推荐阅读
- mysql - MySQL 5 从 json 数组中的整数连接
- logging - Serilog 在多个日志上崩溃?
- python - 如何将整个目录添加到 py2app 设置文件?
- python - 直接列和行excel
- javascript - 出现 Typescript 错误:类型 'any[]' 不可分配给类型 'never[]'。TS2345
- cmake - CMake 的 GLFW 构建错误:“已考虑但未接受以下配置文件”
- node.js - Netlify 部署:12:43:01 AM:由于用户错误,构建失败:构建脚本返回非零退出代码:2
- c++ - 来自 int array[1] 样式声明的可变长度数组
- c# - 如何在 wpf 中显示 avif 格式的图像?
- react-native - 如何在每个堆栈的反应导航中设置标题“汉堡”而不重复它