Я сталкиваюсь со следующим исключением при попытке POST к https API с использованием Open VPN
Примечание: Когда Я пытаюсь получить доступ к API с помощью swagger на планшете, к которому подключен Open VPN, API подключается и работает нормально, просто мобильное приложение не может его использовать. (в приложении Xamarin мы получаем исключение.
Код:
var uri = prepareLoginUri("/Login/Login");
var body = new { username, password };
var json = JsonConvert.SerializeObject(body);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await _client.PostAsync(uri, content);
Исключение:
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
Нашли решение для этого исключения, но не устранили проблему:
https://forums.xamarin.com/discussion/91782/trust-anchor-for-certification-path-not-found
Согласно предложению в По этой ссылке я добавил следующий код в MainActivity.cs
HttpClientHandler clientHandler = new HttpClientHandler();
clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return true; };
_client = new HttpClient(clientHandler);
Это решило исключение, но теперь я получаю ответ от API: 404 Не найдено .
StatusCode: 404, ReasonPhrase: 'Not Found', Version: 1.1, Content: System.Net.Http.HttpConnection+HttpConnectionResponseContent
но в чванстве API работает абсолютно нормально.