From 408f69951f082473f2514831cd702b3e90e1afbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anis=20Alibegi=C4=87?= Date: Tue, 1 Dec 2020 15:06:14 +0100 Subject: [PATCH 1/2] Correctly appends ID query parameter to the existing ones --- lib/src/http_connection.dart | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/src/http_connection.dart b/lib/src/http_connection.dart index 875d819..46a8842 100644 --- a/lib/src/http_connection.dart +++ b/lib/src/http_connection.dart @@ -445,9 +445,19 @@ class HttpConnection implements Connection { if (connectionToken == null) { return url; } - // TODO: Look at this... - //return url + '?' + 'id=$connectionToken'; - return url + (!url.contains('?') ? '?' : '&') + 'id=$connectionToken'; + + final uri = Uri.parse(url); + + return Uri( + scheme: uri.scheme, + host: uri.host, + path: uri.path, + fragment: uri.fragment, + queryParameters: { + ...uri.queryParameters, + ...{ 'id': connectionToken }, + }, + ).toString(); } Future _createTransport( From 450d687584a54bd2d2a3db1a00fb36624ba177c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anis=20Alibegi=C4=87?= Date: Tue, 1 Dec 2020 15:19:28 +0100 Subject: [PATCH 2/2] Check if Uri parsed successfully --- lib/src/http_connection.dart | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/src/http_connection.dart b/lib/src/http_connection.dart index 46a8842..a1ba9d8 100644 --- a/lib/src/http_connection.dart +++ b/lib/src/http_connection.dart @@ -446,7 +446,10 @@ class HttpConnection implements Connection { return url; } - final uri = Uri.parse(url); + final uri = Uri.tryParse(url); + if (uri == null) { + return url; + } return Uri( scheme: uri.scheme,