Я столкнулся с проблемой из-за моей неопытности в управлении потоками. У меня есть это действие ниже:
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)
Так что я не знаю, откуда проблема.
(продолжение) Вот место, где я вызываю Task :
public SuperModel(int id)
{
this.joueur = Repojoueurs.loadjoueurs(id).Result;
/* this.classificationSport = Repoclassificationsport.loadclassificationsport().Result;
...
*/
}
И затем моя супермодель создается здесь, в моем домашнем контроллере:
public ActionResult Index(int id)
{
SuperModel superModel = new SuperModel(id);
return View(superModel);
}