diff --git a/nanoFramework.WebServer.FileSystem/nanoFramework.WebServer.FileSystem.nfproj b/nanoFramework.WebServer.FileSystem/nanoFramework.WebServer.FileSystem.nfproj
index 8effd2e..d474576 100644
--- a/nanoFramework.WebServer.FileSystem/nanoFramework.WebServer.FileSystem.nfproj
+++ b/nanoFramework.WebServer.FileSystem/nanoFramework.WebServer.FileSystem.nfproj
@@ -104,7 +104,7 @@
True
- ..\packages\nanoFramework.System.Net.1.10.68\lib\System.Net.dll
+ ..\packages\nanoFramework.System.Net.1.10.70\lib\System.Net.dll
..\packages\nanoFramework.System.Net.Http.Server.1.5.118\lib\System.Net.Http.dll
diff --git a/nanoFramework.WebServer.FileSystem/packages.config b/nanoFramework.WebServer.FileSystem/packages.config
index 9d227bc..0d2e62a 100644
--- a/nanoFramework.WebServer.FileSystem/packages.config
+++ b/nanoFramework.WebServer.FileSystem/packages.config
@@ -5,7 +5,7 @@
-
+
diff --git a/nanoFramework.WebServer.FileSystem/packages.lock.json b/nanoFramework.WebServer.FileSystem/packages.lock.json
index 6cdc165..9ae7d28 100644
--- a/nanoFramework.WebServer.FileSystem/packages.lock.json
+++ b/nanoFramework.WebServer.FileSystem/packages.lock.json
@@ -34,9 +34,9 @@
},
"nanoFramework.System.Net": {
"type": "Direct",
- "requested": "[1.10.68, 1.10.68]",
- "resolved": "1.10.68",
- "contentHash": "PoM4NadhtMBnuGiOPqi+TJZD8xicz0v72hG5gPGDvWXeKDCMYCMqiCqY+di2pRL3qGHkF+hh8kLOf+wBUJBWNQ=="
+ "requested": "[1.10.70, 1.10.70]",
+ "resolved": "1.10.70",
+ "contentHash": "XP4XdmsCDrXcOJDSfo4zgqccTwPoygBH8y19pnVmrF/EYwbx4WzaMvRE5VnYKu2bp10T78su16+jxzeFZADqDw=="
},
"nanoFramework.System.Net.Http.Server": {
"type": "Direct",
diff --git a/nanoFramework.WebServer.sln b/nanoFramework.WebServer.sln
index f8a5431..b6e6c3b 100644
--- a/nanoFramework.WebServer.sln
+++ b/nanoFramework.WebServer.sln
@@ -15,6 +15,10 @@ Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.WebServer.Fil
EndProject
Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.WebServer.Tests", "tests\nanoFramework.WebServer.Tests\nanoFramework.WebServer.Tests.nfproj", "{2C2B4750-2A48-4D19-9404-178AAB946482}"
EndProject
+Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "WebServerE2ETests", "tests\WebServerE2ETests\WebServerE2ETests.nfproj", "{A0611EAD-FB04-44E7-BAD3-459DD0A7FF46}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{E76226D2-994C-4EE1-B346-050F31B175BD}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -39,10 +43,20 @@ Global
{2C2B4750-2A48-4D19-9404-178AAB946482}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2C2B4750-2A48-4D19-9404-178AAB946482}.Release|Any CPU.Build.0 = Release|Any CPU
{2C2B4750-2A48-4D19-9404-178AAB946482}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {A0611EAD-FB04-44E7-BAD3-459DD0A7FF46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A0611EAD-FB04-44E7-BAD3-459DD0A7FF46}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A0611EAD-FB04-44E7-BAD3-459DD0A7FF46}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {A0611EAD-FB04-44E7-BAD3-459DD0A7FF46}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A0611EAD-FB04-44E7-BAD3-459DD0A7FF46}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A0611EAD-FB04-44E7-BAD3-459DD0A7FF46}.Release|Any CPU.Deploy.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {2C2B4750-2A48-4D19-9404-178AAB946482} = {E76226D2-994C-4EE1-B346-050F31B175BD}
+ {A0611EAD-FB04-44E7-BAD3-459DD0A7FF46} = {E76226D2-994C-4EE1-B346-050F31B175BD}
+ EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {262CE437-AD82-4481-8B77-593288986C70}
EndGlobalSection
diff --git a/nanoFramework.WebServer/WebServer.cs b/nanoFramework.WebServer/WebServer.cs
index 2c3a32f..f5a58f4 100644
--- a/nanoFramework.WebServer/WebServer.cs
+++ b/nanoFramework.WebServer/WebServer.cs
@@ -560,6 +560,7 @@ namespace nanoFramework.WebServer
}
InvokeRoute(route, context);
+ HandleContextResponse(context);
}
if (!isRoute)
diff --git a/nanoFramework.WebServer/nanoFramework.WebServer.nfproj b/nanoFramework.WebServer/nanoFramework.WebServer.nfproj
index 49131bd..8dbe718 100644
--- a/nanoFramework.WebServer/nanoFramework.WebServer.nfproj
+++ b/nanoFramework.WebServer/nanoFramework.WebServer.nfproj
@@ -68,7 +68,7 @@
True
- ..\packages\nanoFramework.System.Net.1.10.68\lib\System.Net.dll
+ ..\packages\nanoFramework.System.Net.1.10.70\lib\System.Net.dll
..\packages\nanoFramework.System.Net.Http.Server.1.5.118\lib\System.Net.Http.dll
diff --git a/nanoFramework.WebServer/packages.config b/nanoFramework.WebServer/packages.config
index 3c1cc69..8c05fdf 100644
--- a/nanoFramework.WebServer/packages.config
+++ b/nanoFramework.WebServer/packages.config
@@ -4,7 +4,7 @@
-
+
diff --git a/nanoFramework.WebServer/packages.lock.json b/nanoFramework.WebServer/packages.lock.json
index 9907c2f..9f0e4ae 100644
--- a/nanoFramework.WebServer/packages.lock.json
+++ b/nanoFramework.WebServer/packages.lock.json
@@ -28,9 +28,9 @@
},
"nanoFramework.System.Net": {
"type": "Direct",
- "requested": "[1.10.68, 1.10.68]",
- "resolved": "1.10.68",
- "contentHash": "PoM4NadhtMBnuGiOPqi+TJZD8xicz0v72hG5gPGDvWXeKDCMYCMqiCqY+di2pRL3qGHkF+hh8kLOf+wBUJBWNQ=="
+ "requested": "[1.10.70, 1.10.70]",
+ "resolved": "1.10.70",
+ "contentHash": "XP4XdmsCDrXcOJDSfo4zgqccTwPoygBH8y19pnVmrF/EYwbx4WzaMvRE5VnYKu2bp10T78su16+jxzeFZADqDw=="
},
"nanoFramework.System.Net.Http.Server": {
"type": "Direct",
diff --git a/tests/WebServerE2ETests/AuthController.cs b/tests/WebServerE2ETests/AuthController.cs
new file mode 100644
index 0000000..8c76db3
--- /dev/null
+++ b/tests/WebServerE2ETests/AuthController.cs
@@ -0,0 +1,46 @@
+// Copyright (c) 2020 Laurent Ellerbach and the project contributors
+// See LICENSE file in the project root for full license information.
+
+using nanoFramework.WebServer;
+using System.Net;
+
+namespace WebServerE2ETests
+{
+ [Authentication("Basic")]
+ class AuthController
+ {
+ [Route("authbasic")]
+ public void Basic(WebServerEventArgs e)
+ {
+ WebServer.OutputHttpCode(e.Context.Response, HttpStatusCode.OK);
+ }
+
+ [Route("authbasicspecial")]
+ [Authentication("Basic:user2 password")]
+ public void Special(WebServerEventArgs e)
+ {
+ WebServer.OutputHttpCode(e.Context.Response, HttpStatusCode.OK);
+ }
+
+ [Authentication("ApiKey:superKey1234")]
+ [Route("authapi")]
+ public void Key(WebServerEventArgs e)
+ {
+ WebServer.OutputHttpCode(e.Context.Response, HttpStatusCode.OK);
+ }
+
+ [Route("authnone")]
+ [Authentication("None")]
+ public void None(WebServerEventArgs e)
+ {
+ WebServer.OutputHttpCode(e.Context.Response, HttpStatusCode.OK);
+ }
+
+ [Authentication("ApiKey")]
+ [Route("authdefaultapi")]
+ public void DefaultApi(WebServerEventArgs e)
+ {
+ WebServer.OutputHttpCode(e.Context.Response, HttpStatusCode.OK);
+ }
+ }
+}
diff --git a/tests/WebServerE2ETests/Program.cs b/tests/WebServerE2ETests/Program.cs
new file mode 100644
index 0000000..285f986
--- /dev/null
+++ b/tests/WebServerE2ETests/Program.cs
@@ -0,0 +1,105 @@
+// Copyright (c) 2020 Laurent Ellerbach and the project contributors
+// See LICENSE file in the project root for full license information.
+
+using nanoFramework.Networking;
+using nanoFramework.WebServer;
+using System;
+using System.Diagnostics;
+using System.IO;
+using System.Net;
+using System.Net.NetworkInformation;
+using System.Threading;
+
+namespace WebServerE2ETests
+{
+ public class Program
+ {
+ private const string Ssid = "yourSSID";
+ private const string Password = "YourPAssword";
+ private static WebServer _server;
+
+ public static void Main()
+ {
+ Debug.WriteLine("Hello from nanoFramework WebServer end to end tests!");
+
+ var res = WifiNetworkHelper.ConnectDhcp(Ssid, Password, requiresDateTime: true, token: new CancellationTokenSource(60_000).Token);
+ if (!res)
+ {
+ Debug.WriteLine("Impossible to connect to wifi, most likely invalid credentials");
+ return;
+ }
+
+ Debug.WriteLine($"Connected with wifi credentials. IP Address: {GetCurrentIPAddress()}");
+ _server = new WebServer(80, HttpProtocol.Http, new Type[] { typeof(SimpleRouteController), typeof(AuthController) });
+ // To test authentication with various scenarios
+ _server.ApiKey = "ATopSecretAPIKey1234";
+ _server.Credential = new NetworkCredential("topuser", "topPassword");
+ // Add a handler for commands that are received by the server.
+ _server.CommandReceived += ServerCommandReceived;
+
+ // Start the server.
+ _server.Start();
+
+ Thread.Sleep(Timeout.Infinite);
+
+ // Browse our samples repository: https://github.com/nanoframework/samples
+ // Check our documentation online: https://docs.nanoframework.net/
+ // Join our lively Discord community: https://discord.gg/gCyBu8T
+ }
+
+ private static void ServerCommandReceived(object obj, WebServerEventArgs e)
+ {
+ const string FileName = "I:\\Text.txt";
+ var url = e.Context.Request.RawUrl;
+ Debug.WriteLine($"{nameof(ServerCommandReceived)} {e.Context.Request.HttpMethod} {url}");
+
+ if (url.ToLower().IndexOf("/param.htm") == 0)
+ {
+ // Test with parameters
+ var parameters = WebServer.DecodeParam(url);
+ string toOutput = "" +
+ "Hi from nanoFramework ServerHere are the parameters of this URL:
";
+ foreach (var par in parameters)
+ {
+ toOutput += $"Parameter name: {par.Name}, Value: {par.Value}
";
+ }
+ toOutput += "";
+ WebServer.OutPutStream(e.Context.Response, toOutput);
+ return;
+ }
+ else if (url.IndexOf("/Text.txt") == 0)
+ {
+ if (File.Exists(FileName))
+ {
+ WebServer.SendFileOverHTTP(e.Context.Response, FileName);
+ return;
+ }
+ else
+ {
+ WebServer.OutputHttpCode(e.Context.Response, HttpStatusCode.NotFound);
+ return;
+ }
+ }
+ else if (url.ToLower().IndexOf("/useinternal") == 0)
+ {
+ File.WriteAllText(FileName, "This is a test file for WebServer");
+ }
+ else
+ {
+ WebServer.OutPutStream(e.Context.Response, "" +
+ "Hi from nanoFramework ServerYou want me to say hello in a real HTML page!
Generate an internal text.txt file
" +
+ "Download the Text.txt file
" +
+ "Try this url with parameters: /param.htm?param1=42&second=24&NAme=Ellerbach");
+ return;
+ }
+ }
+
+ public static string GetCurrentIPAddress()
+ {
+ NetworkInterface ni = NetworkInterface.GetAllNetworkInterfaces()[0];
+
+ // get first NI ( Wifi on ESP32 )
+ return ni.IPv4Address.ToString();
+ }
+ }
+}
diff --git a/tests/WebServerE2ETests/Properties/AssemblyInfo.cs b/tests/WebServerE2ETests/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..b7baab6
--- /dev/null
+++ b/tests/WebServerE2ETests/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("CSharp.BlankApplication")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("CSharp.BlankApplication")]
+[assembly: AssemblyCopyright("Copyright © 2024")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/tests/WebServerE2ETests/SimpleRouteController.cs b/tests/WebServerE2ETests/SimpleRouteController.cs
new file mode 100644
index 0000000..1299b87
--- /dev/null
+++ b/tests/WebServerE2ETests/SimpleRouteController.cs
@@ -0,0 +1,49 @@
+// Copyright (c) 2020 Laurent Ellerbach and the project contributors
+// See LICENSE file in the project root for full license information.
+
+using nanoFramework.WebServer;
+using System.Diagnostics;
+using System.Net;
+
+namespace WebServerE2ETests
+{
+ internal class SimpleRouteController
+ {
+ [Route("okcode")]
+ public void OutputWithOKCode(WebServerEventArgs e)
+ {
+ Debug.WriteLine($"{nameof(OutputWithOKCode)} {e.Context.Request.HttpMethod} {e.Context.Request.RawUrl}");
+ WebServer.OutputHttpCode(e.Context.Response, HttpStatusCode.OK);
+ }
+
+ [Route("notfoundcode")]
+ public void OutputWithNotFoundCode(WebServerEventArgs e)
+ {
+ Debug.WriteLine($"{nameof(OutputWithNotFoundCode)} {e.Context.Request.HttpMethod} {e.Context.Request.RawUrl}");
+ WebServer.OutputHttpCode(e.Context.Response, HttpStatusCode.NotFound);
+ }
+
+ [Route("oktext")]
+ public void OutputWithOKText(WebServerEventArgs e)
+ {
+ Debug.WriteLine($"{nameof(OutputWithOKText)} {e.Context.Request.HttpMethod} {e.Context.Request.RawUrl}");
+ WebServer.OutPutStream(e.Context.Response, "OK");
+ }
+
+ [Route("test"), Route("Test2"), Route("tEst42"), Route("TEST")]
+ [CaseSensitive]
+ [Method("GET")]
+ public void RouteGetTest(WebServerEventArgs e)
+ {
+ string route = $"The route asked is {e.Context.Request.RawUrl.TrimStart('/').Split('/')[0]}";
+ e.Context.Response.ContentType = "text/plain";
+ WebServer.OutPutStream(e.Context.Response, route);
+ }
+
+ [Route("test/any")]
+ public void RouteAnyTest(WebServerEventArgs e)
+ {
+ WebServer.OutputHttpCode(e.Context.Response, HttpStatusCode.OK);
+ }
+ }
+}
diff --git a/tests/WebServerE2ETests/WebServerE2ETests.nfproj b/tests/WebServerE2ETests/WebServerE2ETests.nfproj
new file mode 100644
index 0000000..1bcb2ac
--- /dev/null
+++ b/tests/WebServerE2ETests/WebServerE2ETests.nfproj
@@ -0,0 +1,76 @@
+
+
+
+ $(MSBuildExtensionsPath)\nanoFramework\v1.0\
+
+
+
+ Debug
+ AnyCPU
+ {11A8DD76-328B-46DF-9F39-F559912D0360};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ a0611ead-fb04-44e7-bad3-459dd0a7ff46
+ Exe
+ Properties
+ 512
+ WebServerE2ETests
+ WebServerE2ETests
+ v1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ..\..\packages\nanoFramework.CoreLibrary.1.15.5\lib\mscorlib.dll
+
+
+ ..\..\packages\nanoFramework.Runtime.Events.1.11.15\lib\nanoFramework.Runtime.Events.dll
+
+
+ ..\..\packages\nanoFramework.System.Collections.1.5.31\lib\nanoFramework.System.Collections.dll
+
+
+ ..\..\packages\nanoFramework.System.Runtime.1.0.6\lib\nanoFramework.System.Runtime.dll
+
+
+ ..\..\packages\nanoFramework.System.Text.1.2.54\lib\nanoFramework.System.Text.dll
+
+
+ ..\..\packages\nanoFramework.System.Device.Wifi.1.5.71\lib\System.Device.Wifi.dll
+
+
+ ..\..\packages\nanoFramework.System.IO.FileSystem.1.1.32\lib\System.IO.FileSystem.dll
+
+
+ ..\..\packages\nanoFramework.System.IO.Streams.1.1.52\lib\System.IO.Streams.dll
+
+
+ ..\..\packages\nanoFramework.System.Net.1.10.70\lib\System.Net.dll
+
+
+ ..\..\packages\nanoFramework.System.Net.Http.Server.1.5.118\lib\System.Net.Http.dll
+
+
+ ..\..\packages\nanoFramework.System.Threading.1.1.32\lib\System.Threading.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/WebServerE2ETests/packages.config b/tests/WebServerE2ETests/packages.config
new file mode 100644
index 0000000..860b7a3
--- /dev/null
+++ b/tests/WebServerE2ETests/packages.config
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/WebServerE2ETests/packages.lock.json b/tests/WebServerE2ETests/packages.lock.json
new file mode 100644
index 0000000..4b6318a
--- /dev/null
+++ b/tests/WebServerE2ETests/packages.lock.json
@@ -0,0 +1,73 @@
+{
+ "version": 1,
+ "dependencies": {
+ ".NETnanoFramework,Version=v1.0": {
+ "nanoFramework.CoreLibrary": {
+ "type": "Direct",
+ "requested": "[1.15.5, 1.15.5]",
+ "resolved": "1.15.5",
+ "contentHash": "u2+GvAp1uxLrGdILACAZy+EVKOs28EQ52j8Lz7599egXZ3GBGejjnR2ofhjMQwzrJLlgtyrsx8nSLngDfJNsAg=="
+ },
+ "nanoFramework.Runtime.Events": {
+ "type": "Direct",
+ "requested": "[1.11.15, 1.11.15]",
+ "resolved": "1.11.15",
+ "contentHash": "3uDNSTfiaewDAyi6fOMWYru0JCn/gr8DEv+Ro/V12SzojU9Dyxl5nSVOBtBXts7vErfIthB6SPiK180AMnrI8A=="
+ },
+ "nanoFramework.System.Collections": {
+ "type": "Direct",
+ "requested": "[1.5.31, 1.5.31]",
+ "resolved": "1.5.31",
+ "contentHash": "q7G0BHkbhUzpUJiOQNlZZDSMcZEU2/QJBDiSEQAF23wOya4EBaCXS74jAVcEfkHBgOkF413jKZq5vldpjqUfUw=="
+ },
+ "nanoFramework.System.Device.Wifi": {
+ "type": "Direct",
+ "requested": "[1.5.71, 1.5.71]",
+ "resolved": "1.5.71",
+ "contentHash": "9xOeWznAgLbnEoBLLKSJ3tDL4ZnxVBhUZDfNbMpoGXlb8zYLBMDNOtlWtSJmvpQb4SH7BNoqdEIBtLyXIKMCZw=="
+ },
+ "nanoFramework.System.IO.FileSystem": {
+ "type": "Direct",
+ "requested": "[1.1.32, 1.1.32]",
+ "resolved": "1.1.32",
+ "contentHash": "wZMqZFaQcN5BGlzCMgS7R0pMyNL2hxE+FGrng0xiOydTLCXIJsmloGHJkv9oZ/MxEVYQhTlqsn8vxd8ouQUnOg=="
+ },
+ "nanoFramework.System.IO.Streams": {
+ "type": "Direct",
+ "requested": "[1.1.52, 1.1.52]",
+ "resolved": "1.1.52",
+ "contentHash": "gdExWfWNSl4dgaIoVHHFmhLiRSKAabHA8ueHuErGAWd97qaoN2wSHCtvKqfOu1zuzyccbFpm4HBxVsh6bWMyXw=="
+ },
+ "nanoFramework.System.Net": {
+ "type": "Direct",
+ "requested": "[1.10.70, 1.10.70]",
+ "resolved": "1.10.70",
+ "contentHash": "XP4XdmsCDrXcOJDSfo4zgqccTwPoygBH8y19pnVmrF/EYwbx4WzaMvRE5VnYKu2bp10T78su16+jxzeFZADqDw=="
+ },
+ "nanoFramework.System.Net.Http.Server": {
+ "type": "Direct",
+ "requested": "[1.5.118, 1.5.118]",
+ "resolved": "1.5.118",
+ "contentHash": "ufWlPDHTEvZEYsXqagHLC9K5v7o6o/lRYF+obNaWeLXlxbLR32TAPXgrSGcIkhjY6wksX77lcqu2wkAgStRdag=="
+ },
+ "nanoFramework.System.Runtime": {
+ "type": "Direct",
+ "requested": "[1.0.6, 1.0.6]",
+ "resolved": "1.0.6",
+ "contentHash": "n87itPUMSsOJkUsdoXr0vhiBTggZBMgCtIIC7c+RsVAhF2u/0TU/h+ZLNyFL8Xhl0taPcTN4LiPPTkI+e95Q/g=="
+ },
+ "nanoFramework.System.Text": {
+ "type": "Direct",
+ "requested": "[1.2.54, 1.2.54]",
+ "resolved": "1.2.54",
+ "contentHash": "k3OutSNRMs9di42LQ+5GbpHBY07aMEZWGkaS3Mj3ZU4cWqJc4deFGzRd+LBFQl1mRGdQaM5sl/euTZdcg8R9Zg=="
+ },
+ "nanoFramework.System.Threading": {
+ "type": "Direct",
+ "requested": "[1.1.32, 1.1.32]",
+ "resolved": "1.1.32",
+ "contentHash": "6o7Y4gH15FLuo2FWGLecABiCD57V5QMf5g/hEneV64VmhoXI8Bk7r6BDBPTfAePs738xbc1ECpA5dJmbSmtilg=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/nanoFramework.WebServer.Tests/nanoFramework.WebServer.Tests.nfproj b/tests/nanoFramework.WebServer.Tests/nanoFramework.WebServer.Tests.nfproj
index bef0a52..9f1ff14 100644
--- a/tests/nanoFramework.WebServer.Tests/nanoFramework.WebServer.Tests.nfproj
+++ b/tests/nanoFramework.WebServer.Tests/nanoFramework.WebServer.Tests.nfproj
@@ -53,7 +53,7 @@
..\..\packages\nanoFramework.System.IO.Streams.1.1.52\lib\System.IO.Streams.dll
- ..\..\packages\nanoFramework.System.Net.1.10.68\lib\System.Net.dll
+ ..\..\packages\nanoFramework.System.Net.1.10.70\lib\System.Net.dll
..\..\packages\nanoFramework.System.Net.Http.Server.1.5.118\lib\System.Net.Http.dll
diff --git a/tests/nanoFramework.WebServer.Tests/packages.config b/tests/nanoFramework.WebServer.Tests/packages.config
index 6fe8370..7533713 100644
--- a/tests/nanoFramework.WebServer.Tests/packages.config
+++ b/tests/nanoFramework.WebServer.Tests/packages.config
@@ -4,7 +4,7 @@
-
+
diff --git a/tests/nanoFramework.WebServer.Tests/packages.lock.json b/tests/nanoFramework.WebServer.Tests/packages.lock.json
index 7beaad0..1c8e317 100644
--- a/tests/nanoFramework.WebServer.Tests/packages.lock.json
+++ b/tests/nanoFramework.WebServer.Tests/packages.lock.json
@@ -28,9 +28,9 @@
},
"nanoFramework.System.Net": {
"type": "Direct",
- "requested": "[1.10.68, 1.10.68]",
- "resolved": "1.10.68",
- "contentHash": "PoM4NadhtMBnuGiOPqi+TJZD8xicz0v72hG5gPGDvWXeKDCMYCMqiCqY+di2pRL3qGHkF+hh8kLOf+wBUJBWNQ=="
+ "requested": "[1.10.70, 1.10.70]",
+ "resolved": "1.10.70",
+ "contentHash": "XP4XdmsCDrXcOJDSfo4zgqccTwPoygBH8y19pnVmrF/EYwbx4WzaMvRE5VnYKu2bp10T78su16+jxzeFZADqDw=="
},
"nanoFramework.System.Net.Http.Server": {
"type": "Direct",