我已經構建了一個控制器,它必須進行許多 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
......
郵遞員在回應中顯示 200 OK 和以下內容
"System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 AsyncStateMachineBox`1[namespace.Package,System.Runtime.CompilerServices.IAsyncStateMachine]"
對這種行為有什么解釋嗎?我能做些什么來除錯它?提前感謝任何調查它的人
uj5u.com熱心網友回復:
目前,控制器正在將任務轉換為字串并回傳。您的控制器應該await執行提取結果物件的任務,然后回傳該結果:
public async Task<IActionResult> GetPackageAsync()
{
var filepackagesresp = await aClient.GetPackageDetailsAsync();
return Ok(filepackagesresp.ToString());
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/481395.html
