Как сделать HTTPS-запрос с помощью HttpClient в dart?

Я использую HttpClient из dart (пакет dart: io, НЕ dart: http) и хочу отправить HTTPS-запрос. Есть ли способ сделать это? Кажется, я не могу найти способ, который позволил бы мне это сделать.


person markovuksanovic    schedule 11.02.2014    source источник
comment
почему бы не попробовать HttpClient.open(url)?   -  person Daniel Robinson    schedule 11.02.2014
comment
Я не вижу метода с такой подписью ....   -  person markovuksanovic    schedule 11.02.2014
comment
Извините, даже не видел методов с openUrl. Я ожидал, что смогу передать схему, чтобы открыть. Другие методы не подходили, так как мне нужны и другие HTTP-команды (например, PUT и PATCH).   -  person markovuksanovic    schedule 12.02.2014


Ответы (3)


Шаги отправки запроса 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

person Mohamed Dernoun    schedule 09.04.2020

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.
      ...
    });

Reft: https://api.dart.dev/stable/2.13.1/dart-io/HttpClient-class.html

person Ihda    schedule 06.06.2021

person    schedule
comment
И это сработало? Думаю, в этом случае стоит просто удалить вопрос. - person Günter Zöchbauer; 11.02.2014
comment
Нет, потому что нет метода с подписью, который позволил бы мне указать url в этой форме. - person markovuksanovic; 12.02.2014
comment
Извините, это был метод, которого я не видел. Я был слишком сосредоточен на том, как передать схему в открытый метод. Есть еще один метод, называемый openUrl, который выполняет эту работу. Тем не менее, странно, что вы не можете передать схему в открытый метод. - person markovuksanovic; 12.02.2014
comment
Можете ли вы ответить на этот вопрос самим openUrl ответом, чтобы будущие Дартеры могли это увидеть? - person Justin Fagnani; 14.02.2014
comment
Извините, не знал, что API настолько отличается от API в браузере (какое-то время им не пользовался). Теперь я понимаю, почему это было не так очевидно. - person Günter Zöchbauer; 14.02.2014
comment
@ GünterZöchbauer это не сработало на https, я получил эту ошибку CERTIFICATE_VERIFY_FAILED: самоподписанный сертификат (handshake.cc:354)) - person Mohamed Dernoun; 23.03.2020
comment
@MohamedDernoun medium.com/@ Reme.lehane / должен помочь - person Günter Zöchbauer; 23.03.2020