I am making an https post Request from my flutter app. as there I am using a self signed SSL certificate in server so when I hit the API I am receiving status code as 405, that I am not able to connect,
If I used HTTP package, I am getting bellow exception,
HandshakeException: Handshake error in client (OS Error: I/flutter ( 7107): CERTIFICATE_VERIFY_FAILED: self signed certificate(handshake.cc:352))
when I tried with deo package I am getting 405 status code, below is the code for that,
Response response;
final Dio dio = Dio();
(dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate =
(HttpClient client) {
client.badCertificateCallback =
(X509Certificate cert, String host, int port) => true;
return client;
};
response = await dio.post(loginURL, data: {"username": username, "password": password});
print(response.data.toString());
print(response.statusCode);
I tried to avoid the SSL handshake by making
client.badCertificateCallback =
(X509Certificate cert, String host, int port) => true;
Still its not working any other solution?
dio
request is actually connecting OK (and your call back is working as you expect - returning true - you can check with a print statement of course). So the 405 is coming from the web server. The HTTPS connection was successful and the server responded that it didn't like your request. When you are usinghttp
you aren't specifying the callback, so you get the bad certificate exception as expected. It seems, with dio, that you are getting further than you think and now it's time to look at the server to confirm that it received the request. – Czar