Как сделать HTTPS-запрос с использованием HttpClient в дартс?
Я использую HttpClient от dart (пакет dart:io, а не dart:http), и я хотел бы отправить запрос HTTPS. Есть способ сделать это? Я не могу найти метод, который позволил бы мне это.
4 ответа
new HttpClient().getUrl(Uri.parse('https://www.somedomain.com'));
Я бы хотел порекомендовать вам пакет dio, dio - мощный Http-клиент для Dart / Flutter, который поддерживает перехватчики, FormData, отмену запросов, загрузку файлов, тайм-аут и т. Д.
DIO очень прост в использовании:
Выполнение запроса POST:
response=await dio.post("/test",data:{"id":12,"name":"wendu"})
Отправка FormData:
FormData formData = new FormData.from({
"name": "wendux",
"age": 25,
});
response = await dio.post("/info", data: formData)
Более подробную информацию можно найти на Github: https://github.com/flutterchina/dio.
HttpClient client = new HttpClient();
client.getUrl(Uri.parse("http://www.example.com/"))
.then((HttpClientRequest request) {
// Optionally set up headers...
// Optionally write to the request object...
// Then call close.
...
return request.close();
})
.then((HttpClientResponse response) {
// Process the response.
...
});
Обратно: https://api.dart.dev/stable/2.13.1/dart-io/HttpClient-class.html
Шаги отправки HTTPS-запроса такие же, как и HTTP в dart / flutter, вам нужно добавить одну вещь - разрешить самоподписанным сертификатам обрабатывать badCertificateCallback, добавьте это в свой HttpClient:
var httpClient = HttpClient();
httpClient.badCertificateCallback =
((X509Certificate cert, String host, int port) =>
true); // Allow self signed certificates