Я создаю клиентский интерфейс Instagram на ASP MVC с использованием HttpClient, я пытаюсь сделать запрос на получение, но он терпит неудачу, не бросая исключение или не реагируя на него мой тайм-аут. Вот мой код:ASP HttpClient GetAsync не отвечает и не откладывает время
public class InstagramService
{
private HttpClient Client = new HttpClient {
BaseAddress = new Uri("https://api.instagram.com/v1/"),
Timeout = TimeSpan.FromMilliseconds(500)
};
public async Task<InstagramUser> GetInstagramUser(long? userId = null)
{
InstagramUser User = null;
string Parameter = (userId == null) ? "self" : userId.ToString();
try {
var response = await Client.GetAsync("users/" + Parameter + "/" + GetAccessToken());
if (response.IsSuccessStatusCode)
{
User = await response.Content.ReadAsAsync<InstagramUser>();
}
}catch(Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.InnerException.Message);
}
return User;
}
private string GetAccessToken()
{
return "?access_token=" + DB.config_det_sys.Single(i => i.codigo == "ACCESS_TOKEN_INSTAGRAM" && i.estado == true).Valor;
}
}
EDIT
Здесь я добавляю, как я называю обслуживание на главном контроллере, я все равно буду тестировать изменения контроллер ASync Task
public class HomeController : Controller
{
private InstagramService IGService = new InstagramService();
public ActionResult About()
{
var apiCall = IGService.GetInstagramUser();
var model = apiCall.Result;
return View(model);
}
}
I тестировался на Postman, пытаясь сделать вызов API, и он действительно работал, поэтому, когда я не могу поймать ошибки?
Как вызывается код? Удостоверьтесь, что вы не делаете никаких блокирующих вызовов выше стека вызовов. – Nkosi
@Nkosi. Здесь я добавил фрагмент того, как я собираюсь направить методы –
на проверку ответа Стивена Клири. Поскольку я подозревал, что вы делали блокирующий вызов на 'apiCall.Result', который может привести к тупиковой ситуации. Преобразование действия для использования async/await – Nkosi