请求完成前的 HTTP 响应
HTTP response before the request is complete
我构建了一个控制器,它必须对 assemble 响应进行多次 http 调用。
使用邮递员进行测试。当控制器进行第一次调用时,邮递员收到回复。我完全不知所措:
[HttpGet("")]
[ProducesResponseType(200)]
[ProducesResponseType(400)]
public async Task<IActionResult> GetPackageAsync()
{
var filepackagesresp = aClient.GetPackageDetailsAsync();
return Ok(filepackagesresp.ToString());
}
此控制器正在调用以下方法
public async Task<Package> GetPackageDetailsAsync()
{
var packageresp = await httpClient.GetAsync(serviceurl);
// At this point POSTMAN receives a response
packageresp.EnsureSuccessStatusCode();
var packageResponse = JsonConvert.DeserializeObject<GetPackageResponse>
(await packageresp.Content.ReadAsStringAsync());
var packagepropertiesresp = await httpClient.GetAsync(serviceurl);
.....
there are more calls like this
......
Postman 在响应中显示 200 OK 和以下内容
"System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[namespace.Package,System.Runtime.CompilerServices.IAsyncStateMachine]"
是否有关于此行为的任何解释,我该如何调试?
提前感谢任何研究它的人
目前,控制器正在将 任务 转换为字符串并 returning 。您的控制器应该 await
提取结果对象的任务,然后 return 结果:
public async Task<IActionResult> GetPackageAsync()
{
var filepackagesresp = await aClient.GetPackageDetailsAsync();
return Ok(filepackagesresp.ToString());
}
我构建了一个控制器,它必须对 assemble 响应进行多次 http 调用。 使用邮递员进行测试。当控制器进行第一次调用时,邮递员收到回复。我完全不知所措:
[HttpGet("")]
[ProducesResponseType(200)]
[ProducesResponseType(400)]
public async Task<IActionResult> GetPackageAsync()
{
var filepackagesresp = aClient.GetPackageDetailsAsync();
return Ok(filepackagesresp.ToString());
}
此控制器正在调用以下方法
public async Task<Package> GetPackageDetailsAsync()
{
var packageresp = await httpClient.GetAsync(serviceurl);
// At this point POSTMAN receives a response
packageresp.EnsureSuccessStatusCode();
var packageResponse = JsonConvert.DeserializeObject<GetPackageResponse>
(await packageresp.Content.ReadAsStringAsync());
var packagepropertiesresp = await httpClient.GetAsync(serviceurl);
.....
there are more calls like this
......
Postman 在响应中显示 200 OK 和以下内容
"System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[namespace.Package,System.Runtime.CompilerServices.IAsyncStateMachine]"
是否有关于此行为的任何解释,我该如何调试? 提前感谢任何研究它的人
目前,控制器正在将 任务 转换为字符串并 returning 。您的控制器应该 await
提取结果对象的任务,然后 return 结果:
public async Task<IActionResult> GetPackageAsync()
{
var filepackagesresp = await aClient.GetPackageDetailsAsync();
return Ok(filepackagesresp.ToString());
}