由于我缺乏管理线程的经验,因此遇到了问题。 我有这个动作波纹管:
public static async Task<joueurs> loadjoueurs(int id)
{
joueurs EmpInfo = new joueurs();
using (var client = new HttpClient())
{
//Passing service base url
client.BaseAddress = new Uri("http://www.myWebApi.fr/api/");
client.DefaultRequestHeaders.Clear();
//Define request data format
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//Sending request to find web api REST service resource GetAllEmployees using HttpClient
HttpResponseMessage Res = await client.GetAsync("joueurs?id=" + id);
//Checking the response is successful or not which is sent using HttpClient
if (Res.IsSuccessStatusCode)
{
//Storing the response details recieved from web api
var EmpResponse = Res.Content.ReadAsStringAsync().Result;
//Deserializing the response recieved from web api and storing into the Employee list
EmpInfo = JsonConvert.DeserializeObject<joueurs>(EmpResponse);
return EmpInfo;
}
return null;
}
这只是从webApi获取我的数据的客户端(没有ssl没有身份验证,当我测试它时,我会收到正确的值) 但是当我使用上述功能(在asp.net网站上)进行呼叫时....它始终停留在HttpResponseMessage = await ....中。
在我的webApi中,我有两个函数名称相同但参数不同。
public async Task<IHttpActionResult> Getjoueur(int iduser, int idsport)
和
public async Task<IHttpActionResult> Getjoueur(int id)
所以我不知道问题出在哪里。
(续集)这是我称之为任务的地方:
public SuperModel(int id)
{
this.joueur = Repojoueurs.loadjoueurs(id).Result;
/* this.classificationSport = Repoclassificationsport.loadclassificationsport().Result;
...
*/
}
然后在我的Home控制器中实例化我的超模型:
public ActionResult Index(int id)
{
SuperModel superModel = new SuperModel(id);
return View(superModel);
}
答案 0 :(得分:0)
您能否尝试不使用 async 和 wait 。围绕以下三个变化
public static HttpResponseMessage loadjoueurs(int id)
{
HttpResponseMessage Res = client.GetAsync("joueurs?id=" + id);
return Request.CreateResponse(HttpStatusCode.OK,EmpInfo, "application/json");
}