Hello,
My compagnie have changed the certificate this week and since, android version of my app does not work anymore. The certificate work and it is an official certificate.
public static async Task<Tuple<bool, string>> get(Dictionary<string, string> parameters, string key_url = "")
{
if (CrossConnectivity.Current.IsConnected)
{
// Return soit la liste en string get soit une chaine vide
parameters.Add("device", Global.Device.UID);
parameters.Add("version", Global.Version);
parameters.Add("device_model", Global.Device.Model);
parameters.Add("os_name", Global.Device.OSName);
parameters.Add("os_version", Global.Device.OSVersion);
parameters.Add("datetime", DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz"));
if(Global.User != null && !parameters.ContainsKey("login"))
{
parameters.Add("logon", Global.User.Login);
parameters.Add("login", Global.User.Login);
}
string s_parameters = convertParametersToString(parameters);
//Debut de la requête
//var handler = new ModernHttpClient.NativeMessageHandler();
//handler.ClientCertificateOptions = ClientCertificateOption.Automatic;
using (var client = new HttpClient() { Timeout = TimeSpan.FromSeconds(60) })//new ModernHttpClient.NativeMessageHandler()
{
//client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", OAuth.token);
client.DefaultRequestHeaders.Host = Global.Url.Replace("https://", "").Replace("http://", "").Replace("/", "");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = new HttpResponseMessage();
try{
response = await client.GetAsync(Global.Url + key_url + "?" + s_parameters);
} catch (Exception exceptionss)
{
string testttt = "test";
}
string result = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
return new Tuple<bool, string>(true, result);
}
else
{
if((int)response.StatusCode == 503)
{
return new Tuple<bool, string>(false, "503 : " + result);
}
else
{
return new Tuple<bool, string>(false, result);
}
}
}
}
else
{
return new Tuple<bool, string>(false, "no internet");
}
}
**ERROR : **
{Javax.Net.Ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. ---> Java.Security.Cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. ---> Java.Security.Cert.CertPathValidatorException: Trust anchor for certification path not found.
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <3fd174ff54b146228c505f23cf75ce71>:0
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <3fd174ff54b146228c505f23cf75ce71>:0
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <3fd174ff54b146228c505f23cf75ce71>:0
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <3fd174ff54b146228c505f23cf75ce71>:0
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <3fd174ff54b146228c505f23cf75ce71>:0 at ModernHttpClient.NativeMessageHandler+<SendAsync>c__async0.MoveNext () [0x00428] in /Users/paul/code/paulcbetts/modernhttpclient/src/ModernHttpClient/Android/OkHttpNetworkHandler.cs:135 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <3fd174ff54b146228c505f23cf75ce71>:0 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <3fd174ff54b146228c505f23cf75ce71>:0 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <3fd174ff54b146228c505f23cf75ce71>:0 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <3fd174ff54b146228c505f23cf75ce71>:0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable
1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <3fd174ff54b146228c505f23cf75ce71>:0
at System.Net.Http.HttpClient+d__49.MoveNext () [0x000ca] in :0
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <3fd174ff54b146228c505f23cf75ce71>:0
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <3fd174ff54b146228c505f23cf75ce71>:0
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <3fd174ff54b146228c505f23cf75ce71>:0
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <3fd174ff54b146228c505f23cf75ce71>:0
at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () [0x00000] in <3fd174ff54b146228c505f23cf75ce71>:0
at GestionnairesCopro.Models.WebService+d__0.MoveNext () [0x0022c] in /Users/msaunier/Documents/GestionnairesCopro/GestionnairesCopro/GestionnairesCopro/Models/WebService.cs:49
--- End of managed Javax.Net.Ssl.SSLHandshakeException stack trace ---
javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:357)
at com.squareup.okhttp.Connection.upgradeToTls(Connection.java:242)
at com.squareup.okhttp.Connection.connect(Connection.java:159)
…
Thanks for your help.