Skrivet av anon237522:
@burton666: Det du söker är att bygga ett REST API. Det går som tidigare post sa att göra i de flesta språk, jag har själv bara använt asp.net web API, vilket kanske är lite overkill i det här fallet. Vill du även lagra datat i en databas?
Postman är grymt för att testa.
Det går relativt enkelt att få till i ASP.net, och även bygga som en standalone applikation som inte kräver IIS.
VisualStudio Community edition är helt gratis och sedan VS2017 så är det relativt litet och tar bara några minuter att installera om man har bra bandbredd.
Tanka ner VS community installern från visualstudio.com och klicka i ASP.net and web development.
Starta VS och skapa ett nytt projekt:
File->New Project->Templates->Visual C#->Web->Asp.NET Core Web Application (.NET Framework).
Döp det till JsonListener, välj Web API och OK.
Byt ut koden i Program.cs
using System.IO;
using System.Linq;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
namespace JsonListener
{
public class Program
{
public static void Main(string[] args)
{
var urls = Enumerable.Range(25000, 11)
.Select(port => $"http://localhost:{port}")
.ToArray();
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseUrls(urls)
.Build();
host.Run();
}
}
}
Byt ut koden i ValuesController.cs:
using System;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json.Linq;
namespace JsonListener.Controllers
{
[Route("")]
public class ValuesController : Controller
{
private readonly ILogger _logger;
public ValuesController(ILogger<ValuesController> logger)
{
_logger = logger;
}
[HttpPost]
public void Post([FromBody]JToken json)
{
_logger.LogInformation($"Mottog json på port {Request.Host.Port}:{Environment.NewLine}{json}");
switch (Request.Host.Port)
{
case 25000:
var inValue = json["in"].Value<int>();
var outValue = json["out"].Value<int>();
break;
case 25001:
var isChoklad = json["glass"]["choklad"].Value<bool>();
break;
default:
break;
}
}
}
}
Klart.
På knappen för att starta applikationen i Visual Studio kan du välja i dropdownen om du vill hosta i IIS Express som följer med visual studio, eller som en standalone .exe.
Båda går att debugga, du kan sätta en brytpunk i ValueControllerns postmetod för att debugga när du får ett anrop.
Du kan testa anropa med Postman om du laddar ner det från getpostman.com
Välj Post, url: http://localhost:25001/
Under Body, välj Raw och längst till höger JSON (application/json)
{
"glass": {
"choklad": true,
"jordgubb": true
}
}
När du slutligen är helt klar med din webserverapp kan du i VS även publicera den till en Folder från buildmenyn.