From 4238877c5fbcb1829ca7cf881b40f85de742b693 Mon Sep 17 00:00:00 2001 From: unknown <sarasdj@stud.ntnu.no> Date: Wed, 7 Feb 2024 13:29:02 +0100 Subject: [PATCH] update: app-server connection --- app/lib/main.dart | 55 +++++++++++++--------- server/__pycache__/consts.cpython-311.pyc | Bin 620 -> 620 bytes 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/app/lib/main.dart b/app/lib/main.dart index e2e024ff..d2d9e0c9 100644 --- a/app/lib/main.dart +++ b/app/lib/main.dart @@ -2,13 +2,32 @@ import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'dart:convert'; import 'dart:async'; +import 'dart:io'; -const serverURI = "https://127.0.0.1:8443"; -const mapEndpoint = serverURI + "/update_map"; -const fetchInterval = 5; +const String port = "8443"; +const String serverURI = "https://127.0.0.1:$port/"; +const int fetchInterval = 5; -void main() { - runApp(const App()); +Future<void> main() async { + // NB temporary test print + print(serverURI); + + try { + // Create a custom HTTP client with disabled SSL certificate validation + HttpClient client = HttpClient() + ..badCertificateCallback = + (X509Certificate cert, String host, int port) => true; + + // Use the custom HTTP client for requests + var request = await client.getUrl(Uri.parse(serverURI)); + var response = await request.close(); + + // Handle response + print('Response status: ${response.statusCode}'); + } catch (e) { + // Handle connection error + print('Failed to connect to the server: $e'); + } } class App extends StatelessWidget { @@ -22,8 +41,9 @@ class App extends StatelessWidget { } } +// fetchData requests data from the update_map endpoint Future<void> fetchData() async { - final response = await http.get(Uri.parse(mapEndpoint)); + final response = await http.get(Uri.parse(serverURI)); if (response.statusCode == 200) { // Parse the JSON response @@ -31,6 +51,7 @@ Future<void> fetchData() async { // NB temporary test print print(data); + print("Test print, fetchData triggered"); } else { // Handle the error case print('Failed to fetch data. Status code: ${response.statusCode}'); } @@ -52,7 +73,7 @@ class _DefaultPageState extends State<DefaultPage> { // Call fetchData when the widget is first created fetchData(); - // Schedule fetchData to run periodically based on FETCH_INTERVAL const + // Schedule fetchData to run periodically based on fetchInterval const const Duration fiveMinutes = Duration(minutes: fetchInterval); _timer = Timer.periodic(fiveMinutes, (timer) { fetchData(); @@ -61,7 +82,7 @@ class _DefaultPageState extends State<DefaultPage> { @override void dispose() { - // Cancel the timer when the widget is disposed to avoid memory leaks + // Cancel timer on widget termination _timer.cancel(); super.dispose(); } @@ -70,25 +91,17 @@ class _DefaultPageState extends State<DefaultPage> { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: const Text('Flutter Mobile App'), + title: const Text('IceMap'), ), - body: Center( + body: const Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ - const Text( - 'Default flutter app page!', + Text( + 'Default page', style: TextStyle(fontSize: 24), ), - const SizedBox(height: 20), - ElevatedButton( - onPressed: () async { - // Attempt to connect to the server - var response = await http.get(Uri.parse(serverURI)); - print('Response from server: ${response.body}'); - }, - child: const Text('Some text'), - ), + SizedBox(height: 20), ], ), ), diff --git a/server/__pycache__/consts.cpython-311.pyc b/server/__pycache__/consts.cpython-311.pyc index fec899b67480674edd7bb48dd0014c814b08bb58..3de30302111c2cd3d3561aa908cd47ab136cdbed 100644 GIT binary patch delta 20 acmaFE@`i<bIWI340}yx=9p1>D$OHg97zI-R delta 20 acmaFE@`i<bIWI340}vGMJ+P5GkqH1k>IK9A -- GitLab