Я разрабатываю мобильное приложение с использованием Xamarin. Приложение использует API, который недавно выпустил новую версию, используя HTTPS вместо HTTP. При изменении URL-адреса для использования HTTPS и добавления заголовка atuhorization запрос застревает и в конечном итоге истечет время ожидания. API-вызовы отлично работают при тестировании в Postman, например.WebClient get/post to https always timeout
Все вызовы API сделаны из портативной библиотеки, и я запускаю приложение на физическом устройстве.
У кого-нибудь есть идеи о том, что я могу сделать, чтобы решить эту проблему?
Это код, который я использую для отправки данных в API:
private async Task<HttpResponseMessage> PostData(HttpContent content, string authKey)
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Authorization", authKey);
client.Timeout = new TimeSpan(0, 0, 25);
var response = await client.PostAsync(BaseUrl, content);
return response;
}
}
EDIT
Я пробовал много различных решений, настройка заголовков типа содержимого и так далее, но ничего не получалось , Я пытался использовать HttpWebRequest вместо HttpClient, но без успеха.
Я создал консольное приложение на C# и создал новый чистый проект Xamarin для Android. Все работает в консольном приложении, но не в проекте Xamarin.
Если вы тестируете на Android, подключите устройство к инструменту монитора Android SDK и посмотрите на логарифм, это может немного осветить проблему. – Gusman
Я знаю, что это звучит глупо, но у меня была такая ситуация: мы включили номер порта (нестандартный http: 80) в настройке baseurl клиента и забыли удалить его, когда мы переключили наш сервер на прослушивание по умолчанию 80/443 порты – derpirscher