首先安装几个包:
Microsoft.Owin
Microsoft.Owin.Hosting
Microsoft.Owin.Host.HttpListen
Microsoft.AspNet.WebApi.OwinSelfHost
然后再Program.cs文件中添加以下代码,http服务将会在程序启动时启动
csharp
using Microsoft.Owin.Builder;
using Owin;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.UI.WebControls;
using System.Windows.Forms;
using Microsoft.Owin.Hosting;
namespace Test
{
class Startup
{
// 配置Web API路由和其他设置
public void Configuration(IAppBuilder appBuilder)
{
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}",
defaults: new { id = System.Web.Http.RouteParameter.Optional }
);
appBuilder.UseWebApi(config);
}
}
internal static class Program
{
private static IDisposable _webApp;
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// 启动Web API服务
string baseAddress = "http://*:9005/";
_webApp = WebApp.Start<Startup>(url: baseAddress);
Console.WriteLine($"Web API running at {baseAddress}");
Login login = new Login();
DialogResult dialogResult = login.ShowDialog();
if (dialogResult == DialogResult.OK)
{
Application.Run(new Form1());
}
}
}
}
然后编写控制器
csharp
[Route("api/[controller]/[action]")]//
public class PushTestResultController : ApiController
{
[HttpPost]
public dynamic PushTestResultAsync(ReceiveTestResult receiveTest) {
string result= JsonConvert.SerializeObject(receiveTest);
Log.Error(result);
return null;
}
[HttpGet]
public dynamic getaaa()
{
return "aaa";
}
}