目標是使我的定製服務中使用異步方法的控制器。WebAPI:在業務邏輯中使用異步方法
控制器:
[Route("api/data/summary")]
[HttpGet]
public async Task<IHttpActionResult> Get()
{
var result = await DataService.GetDataObjects();
return Ok(result);
}
服務:
public static async Task<IEnumerable<DataObject>> GetDataObjects()
{
var apiKey = "some-api-key";
var path = "path-to-external-service";
using (var client = new HttpClient())
{
var dataToProcess = // some data object
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.BaseAddress = new Uri(path);
HttpResponseMessage response = await client.PostAsJsonAsync("", dataToProcess);
var content = await response.Content.ReadAsStringAsync();
var result = MakeEntities(content); // some logic
return result;
}
}
但我與控制器的動作之前服務實際完成處理的數據返回空結果問題來了對面。
你能否請教如何正確實施它?
查看代碼看起來並不像控制器動作可以返回結果的服務完成處理數據之前。你可以調試服務,並找出預期的輸出。 –
什麼版本的ASP .NET Web API做喲使用?確保在執行'GetDataObjects'時不會發生異常。 – Pavel
你總是回來好吧,你確定應用程序沒有上升異常嗎? – Tinwor