Adding E2E test application and fixing OutputHttpCode when no content (#240)

This commit is contained in:
Laurent Ellerbach 2024-01-26 13:09:03 +01:00 коммит произвёл GitHub
Родитель ec4022e268
Коммит 0193d88759
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
18 изменённых файлов: 426 добавлений и 15 удалений

Просмотреть файл

@ -104,7 +104,7 @@
<Private>True</Private>
</Reference>
<Reference Include="System.Net">
<HintPath>..\packages\nanoFramework.System.Net.1.10.68\lib\System.Net.dll</HintPath>
<HintPath>..\packages\nanoFramework.System.Net.1.10.70\lib\System.Net.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http">
<HintPath>..\packages\nanoFramework.System.Net.Http.Server.1.5.118\lib\System.Net.Http.dll</HintPath>

Просмотреть файл

@ -5,7 +5,7 @@
<package id="nanoFramework.System.Collections" version="1.5.31" targetFramework="netnano1.0" />
<package id="nanoFramework.System.IO.FileSystem" version="1.1.32" targetFramework="netnano1.0" />
<package id="nanoFramework.System.IO.Streams" version="1.1.52" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Net" version="1.10.68" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Net" version="1.10.70" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Net.Http.Server" version="1.5.118" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Runtime" version="1.0.6" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Text" version="1.2.54" targetFramework="netnano1.0" />

Просмотреть файл

@ -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",

Просмотреть файл

@ -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

Просмотреть файл

@ -560,6 +560,7 @@ namespace nanoFramework.WebServer
}
InvokeRoute(route, context);
HandleContextResponse(context);
}
if (!isRoute)

Просмотреть файл

@ -68,7 +68,7 @@
<Private>True</Private>
</Reference>
<Reference Include="System.Net">
<HintPath>..\packages\nanoFramework.System.Net.1.10.68\lib\System.Net.dll</HintPath>
<HintPath>..\packages\nanoFramework.System.Net.1.10.70\lib\System.Net.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http">
<HintPath>..\packages\nanoFramework.System.Net.Http.Server.1.5.118\lib\System.Net.Http.dll</HintPath>

Просмотреть файл

@ -4,7 +4,7 @@
<package id="nanoFramework.Runtime.Events" version="1.11.15" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Collections" version="1.5.31" targetFramework="netnano1.0" />
<package id="nanoFramework.System.IO.Streams" version="1.1.52" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Net" version="1.10.68" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Net" version="1.10.70" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Net.Http.Server" version="1.5.118" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Text" version="1.2.54" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Threading" version="1.1.32" targetFramework="netnano1.0" />

Просмотреть файл

@ -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",

Просмотреть файл

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

Просмотреть файл

@ -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 = "<html><head>" +
"<title>Hi from nanoFramework Server</title></head><body>Here are the parameters of this URL: <br />";
foreach (var par in parameters)
{
toOutput += $"Parameter name: {par.Name}, Value: {par.Value}<br />";
}
toOutput += "</body></html>";
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, "<html><head>" +
"<title>Hi from nanoFramework Server</title></head><body>You want me to say hello in a real HTML page!<br/><a href='/useinternal'>Generate an internal text.txt file</a><br />" +
"<a href='/Text.txt'>Download the Text.txt file</a><br>" +
"Try this url with parameters: <a href='/param.htm?param1=42&second=24&NAme=Ellerbach'>/param.htm?param1=42&second=24&NAme=Ellerbach</a></body></html>");
return;
}
}
public static string GetCurrentIPAddress()
{
NetworkInterface ni = NetworkInterface.GetAllNetworkInterfaces()[0];
// get first NI ( Wifi on ESP32 )
return ni.IPv4Address.ToString();
}
}
}

Просмотреть файл

@ -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")]

Просмотреть файл

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

Просмотреть файл

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<NanoFrameworkProjectSystemPath>$(MSBuildExtensionsPath)\nanoFramework\v1.0\</NanoFrameworkProjectSystemPath>
</PropertyGroup>
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.Default.props" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.Default.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectTypeGuids>{11A8DD76-328B-46DF-9F39-F559912D0360};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<ProjectGuid>a0611ead-fb04-44e7-bad3-459dd0a7ff46</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<FileAlignment>512</FileAlignment>
<RootNamespace>WebServerE2ETests</RootNamespace>
<AssemblyName>WebServerE2ETests</AssemblyName>
<TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
</PropertyGroup>
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.props" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.props')" />
<ItemGroup>
<Compile Include="AuthController.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SimpleRouteController.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\nanoFramework.WebServer.FileSystem\nanoFramework.WebServer.FileSystem.nfproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="mscorlib">
<HintPath>..\..\packages\nanoFramework.CoreLibrary.1.15.5\lib\mscorlib.dll</HintPath>
</Reference>
<Reference Include="nanoFramework.Runtime.Events">
<HintPath>..\..\packages\nanoFramework.Runtime.Events.1.11.15\lib\nanoFramework.Runtime.Events.dll</HintPath>
</Reference>
<Reference Include="nanoFramework.System.Collections">
<HintPath>..\..\packages\nanoFramework.System.Collections.1.5.31\lib\nanoFramework.System.Collections.dll</HintPath>
</Reference>
<Reference Include="nanoFramework.System.Runtime">
<HintPath>..\..\packages\nanoFramework.System.Runtime.1.0.6\lib\nanoFramework.System.Runtime.dll</HintPath>
</Reference>
<Reference Include="nanoFramework.System.Text">
<HintPath>..\..\packages\nanoFramework.System.Text.1.2.54\lib\nanoFramework.System.Text.dll</HintPath>
</Reference>
<Reference Include="System.Device.Wifi">
<HintPath>..\..\packages\nanoFramework.System.Device.Wifi.1.5.71\lib\System.Device.Wifi.dll</HintPath>
</Reference>
<Reference Include="System.IO.FileSystem">
<HintPath>..\..\packages\nanoFramework.System.IO.FileSystem.1.1.32\lib\System.IO.FileSystem.dll</HintPath>
</Reference>
<Reference Include="System.IO.Streams">
<HintPath>..\..\packages\nanoFramework.System.IO.Streams.1.1.52\lib\System.IO.Streams.dll</HintPath>
</Reference>
<Reference Include="System.Net">
<HintPath>..\..\packages\nanoFramework.System.Net.1.10.70\lib\System.Net.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http">
<HintPath>..\..\packages\nanoFramework.System.Net.Http.Server.1.5.118\lib\System.Net.Http.dll</HintPath>
</Reference>
<Reference Include="System.Threading">
<HintPath>..\..\packages\nanoFramework.System.Threading.1.1.32\lib\System.Threading.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Content Include="packages.lock.json" />
</ItemGroup>
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets')" />
<ProjectExtensions>
<ProjectCapabilities>
<ProjectConfigurationsDeclaredAsItems />
</ProjectCapabilities>
</ProjectExtensions>
</Project>

Просмотреть файл

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="nanoFramework.CoreLibrary" version="1.15.5" targetFramework="netnano1.0" />
<package id="nanoFramework.Runtime.Events" version="1.11.15" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Collections" version="1.5.31" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Device.Wifi" version="1.5.71" targetFramework="netnano1.0" />
<package id="nanoFramework.System.IO.FileSystem" version="1.1.32" targetFramework="netnano1.0" />
<package id="nanoFramework.System.IO.Streams" version="1.1.52" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Net" version="1.10.70" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Net.Http.Server" version="1.5.118" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Runtime" version="1.0.6" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Text" version="1.2.54" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Threading" version="1.1.32" targetFramework="netnano1.0" />
</packages>

Просмотреть файл

@ -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=="
}
}
}
}

Просмотреть файл

@ -53,7 +53,7 @@
<HintPath>..\..\packages\nanoFramework.System.IO.Streams.1.1.52\lib\System.IO.Streams.dll</HintPath>
</Reference>
<Reference Include="System.Net">
<HintPath>..\..\packages\nanoFramework.System.Net.1.10.68\lib\System.Net.dll</HintPath>
<HintPath>..\..\packages\nanoFramework.System.Net.1.10.70\lib\System.Net.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http">
<HintPath>..\..\packages\nanoFramework.System.Net.Http.Server.1.5.118\lib\System.Net.Http.dll</HintPath>

Просмотреть файл

@ -4,7 +4,7 @@
<package id="nanoFramework.Runtime.Events" version="1.11.15" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Collections" version="1.5.31" targetFramework="netnano1.0" />
<package id="nanoFramework.System.IO.Streams" version="1.1.52" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Net" version="1.10.68" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Net" version="1.10.70" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Net.Http.Server" version="1.5.118" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Text" version="1.2.54" targetFramework="netnano1.0" />
<package id="nanoFramework.System.Threading" version="1.1.32" targetFramework="netnano1.0" />

Просмотреть файл

@ -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",