#flutter #dart #https
Вопрос:
var client = new HttpClient();
client.badCertificateCallback = ((X509Certificate cert, String host, int port) => true);
print("Connecting to: https://192.168.100.200:8081/zoneserver/?op=1amp;id=$id");
Stopwatch stopwatch = new Stopwatch()..start();
var request = await client.getUrl(Uri.parse("https://192.168.100.200:8081/zoneserver/?op=1amp;id=$id"));
print("Got request ${stopwatch.elapsed}");
request.persistentConnection = false; // Use non-persistent connection.
var response = await request.close();
print("Got response ${stopwatch.elapsed}");
var contents = await response.transform(utf8.decoder).join();
print("Got contents ${stopwatch.elapsed}");
client.close();
print("${stopwatch.elapsed} content:$contents");
Почему этот код такой медленный? Сервер в основном является сервером hello world и запускается локально. С помощью почтальона или веб — браузера запрос выполняется мгновенно.
Я тестирую на устройстве Android 11. Мое подозрение в том, что это так client.badCertificateCallback
. Но почему и могу ли я что-то с этим поделать?
Правка: Это var request = await client.getUrl(Uri.parse("https://192.168.100.200:8081/zoneserver/?op=1amp;id=$id"));
то, что занимает 17 секунд
Комментарии:
1. Вы добавили некоторые записи (с отметками времени, соответствующими вашей клиентской части) на свой сервер, чтобы узнать, сколько времени требуется для связи? например, можете ли вы видеть, что ваш сервер получает запрос в то же время, когда Dart отправляет его?
2. Я веду журнал, который вы видите в фрагменте кода, а также регистрируюсь на стороне сервера при получении нового запроса. Это клиент.getURL (), который занимает время ~17 секунд. Сервер получает запрос ~17 секунд после вызова client.getURL(). Я добавлю еще несколько журналов: подключено, рукопожатие и т. Д