Как сделать 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

Ссылка: https://medium.com/@reme.lehane/flutter-using-self-signed-ssl-certificates-in-development-c3fe2d104acf

Другие вопросы по тегам