Float.HttpServer
1.0.0.13
dotnet add package Float.HttpServer --version 1.0.0.13
NuGet\Install-Package Float.HttpServer -Version 1.0.0.13
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Float.HttpServer" Version="1.0.0.13" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Float.HttpServer --version 1.0.0.13
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Float.HttpServer, 1.0.0.13"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Float.HttpServer as a Cake Addin
#addin nuget:?package=Float.HttpServer&version=1.0.0.13
// Install Float.HttpServer as a Cake Tool
#tool nuget:?package=Float.HttpServer&version=1.0.0.13
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Float.HttpServer
This provides a local HTTP server on device. It allows the app to create a server by defining routes for given methods.
Using the Server
Install the Nuget
nuget install Float.HttpServer
Creating a Server
Create the Routes
using System;
using System.Collections.Generic;
using System.Net;
using Float.HttpServer;
using Xamarin.Essentials;
using static Float.HttpServer.HttpRouter;
using HttpServer = Float.HttpServer.LocalHttpServer;
public class LocalHttpServer
{
private readonly HttpServer server;
private Uri uri;
/// <summary>
/// Initializes a new instance of the <see cref="LocalHttpServer"/> class.
/// </summary>
public LocalHttpServer()
{
var host = "127.0.0.1";
var port = 33616;
server = new HttpServer(host, port);
uri = new Uri($"http://{host}:{port}/");
// If the route is not matched directly, always use the StaticFileResponder.
server.SetDefaultResponder(new StaticFileResponder(FileSystem.CacheDirectory));
// Create an error page when things aren't found.
server.SetErrorResponder(new ErrorResponder404());
// Inject some middleware that stops the request if the user-agent
// doesn't contain the word "Mozilla".
server.Use(
new List<HttpMethod> { HttpMethod.GET },
(HttpListenerRequest request, ref HttpListenerResponse response) =>
{
if (request.Headers.HasKeys() &&
string.Join(string.Empty, request.Headers.GetValues("User-Agent")).Contains("Mozilla") == false)
{
response.StatusCode = 401;
return false;
}
return true;
});
// Create a dynamic route that responds to post
// requests at /node/:nodeId where nodeId is a parameter injected
// into the responder.
server.Post("/node/:nodeId", new NodePostResponder());
// Create a route that responds to GET, PUT, and POST requests
// at /agents/profile.
server.AddResponser(
new List<HttpMethod>
{
HttpMethod.GET,
HttpMethod.POST,
HttpMethod.PUT,
},
"/agents/profile",
new AgentProfileResponder());
});
/// <summary>
/// Starts the default server.
/// </summary>
public void Start()
{
server.Start();
}
/// <summary>
/// Stops the default server.
/// </summary>
public void Stop()
{
server.Stop();
}
}
Start the Server
var localHttpServer = new LocalHttpServer();
localHttpServer.Start();
Stop the Server
localHttpServer.Stop()
Building the Nuget
./build.sh
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- No dependencies.
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.