У меня возникли проблемы, которые, по-видимому, связаны с асинхронным вызовом определенного API с использованием HttpClient
- странно то, что это происходит не всегда и может быть решено путем обновления страницы (иногда один раз, иногда несколько раз) ).
Я думал, что это может быть локальной проблемой, но хостинг в Azure дает те же результаты.
Необработанные детали исключения:
System.Net.Sockets.SocketException (11001): такой хост не известен
в System.Net.Http.ConnectHelper.ConnectAsync (строковый хост, порт Int32, CancellationToken cancellationToken)
Я проверил:
- На API нет ограничений
- Передача URL-адреса запроса в браузере возвращает ожидаемый результат JSON
- Обновление страницы иногда решает проблему
Начало ошибки:
Остальное:
Это метод, который, кажется, вызывает проблему:
public async Task<List<MoonPhase.Phasedata>> GetPhaseDataAsync(double lat, double lng, int year)
{
string requestUrl = "https://api.usno.navy.mil/moon/phase?year=" + year + "&coords=" + locationService.FormatCoordinates(lat, lng) + "&tz=0";
using (var client = new HttpClient())
{
var content = await client.GetStringAsync(requestUrl);
var moonPhaseObject = JsonConvert.DeserializeObject<MoonPhase.RootObject>(content, new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
});
return moonPhaseObject.PhaseData;
}
}