J'utilise le flutter pour me connecter Java java mise en œuvre du serveur sur https. Je l'ai d'abord testé pour fonctionner en utilisant uniquement HTTP.
J'ai ensuite passé à HTTPS du côté du serveur et l'a pointé sur mon certificat auto-signé, j'ai créé à l'aide de KeyTool.
Ensuite, j'ai essayé de me connecter à l'aide du package DART HTTP. On a obtenu l'exception suivante ...
Exception non conventionnelle: Poignée de main Erreur de main: Erreur de poignée de main dans le client (Erreur du système d'exploitation: E/Flutter (7370): Certificat_Verify_FAILED: Certificat auto-signé (poignée de main.cc:354))
Je suppose que je dois définir mon client pour faire confiance à un certificat auto-signé sur mon serveur. J'ai regardé la référence de l'API et je ne pouvais pas comprendre comment obtenir cela pour arriver ...
Mon code de dard dans mon app est comme suit ...
void testMessage() {
var url = 'https://192.168.100.105:8443';
var response = await http.post(url, body: "{\"message_name\": \"TestMessage\", \"contents\": { \"field1\":\"blah\", \"field2\":\"blah\" }}");
print('Response status: ${response.statusCode}');
print('Response body: ${response.body}');
}
Si vous utilisez une bibliothèque DIO https://pub.dev/packages/dio Vous pouvez faire des demandes de http to https