2015-10-20 55 views
0

我有一個庫包裝器OVH API,我嘗試調用一個函數來獲取ASP.NET MVC項目中的消費者密鑰。它工作在一個控制檯項目申請,但該方法在我的控制器從未迴應:圖書館從ASP.NET MVC中的控制器調用異步任務<>>

public async Task<CredentialsResponse> RequestCredential(IEnumerable<AccessRule> accessRules, string redirectUrl = null) 
    { 
     Ensure.NotNull("accessRules", accessRules); 

     CredentialsRequest cmd = new CredentialsRequest(); 
     cmd.AccessRules.AddRange(accessRules); 
     cmd.Redirection = redirectUrl; 

     if (cmd.AccessRules.Count == 0) 
      throw new ArgumentException("You must specify at least one accessRule"); 
     return await RawCall<CredentialsResponse>(HttpMethod.Post, "/auth/credential", cmd; 
    } 

的方法,我在控制器撥打:

public ActionResult Index() 
    { 
     Information infosClient = new Information(); 

     OvhApiClient api = new OvhApiClient("", "", OvhInfra.Europe); 

     CredentialsResponse response = api.RequestCredential(new[]{ 
      new AccessRule{ Method = "GET", Path = "/*"}, 
      new AccessRule{ Method = "PUT", Path = "/*"}, 
      new AccessRule{ Method = "POST", Path = "/*"}, 
      //new AccessRule{ Method = "DELETE", Path = "/*"}, 
     }).Result; 

     api.ConsumerKey = response.ConsumerKey; 

     infosClient.ConsumerKey = api.ConsumerKey; 
     return View(infosClient); 
    } 

我已經嘗試了很多的東西沒有成功(例如,將呼叫置於異步方法中)。

在此先感謝您的幫助

回答

7

使控制器動作異步:

public async Task<ActionResult> Index() 
{ 
    ... 
    CredentialsResponse response = await api.RequestCredential(...); 
    ... 
} 
+0

謝謝你,它工作正常。 :) – ArthurCPPCLI

+0

是的,只是延遲來驗證。 – ArthurCPPCLI

相關問題