zoukankan      html  css  js  c++  java
  • webapi------宿主程序

    业务场景:

    公司的容器程序需要给前端暴露接口但是代码里面又不想写webapi项目工程就用到了宿主可以达到webapi的效果

    1、owin实现

    2、其他实现

     测试实现如下

    1、新建一个控制台程序

    2、新建一个Controller文件并继承ApiController

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Web.Http;
    
    namespace ConsoleApplication1
    {
        public class BlahController : ApiController
        {
            [HttpGet]
            public string Date()
            {
                return DateTime.Today.ToString("yyyy/MM/dd");
            }
        }
    }

    3、实现调用

    3.1实现调用一

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using System.Web.Http;
    using System.Web.Http.SelfHost;
    
    namespace ConsoleApplication1
    {
        class Program
        {       
            static void Main(string[] args)
            {          
                #region http://localhost:9001/Blah/Date
                //指定URL
                var config = new HttpSelfHostConfiguration("http://localhost:9001");
                //设定路由
                config.Routes.MapHttpRoute("API", "{controller}/{action}/{id}", new { id = RouteParameter.Optional });
                using (var httpServer = new HttpSelfHostServer(config))
                {
                    //OpenAsync()屬非同步呼叫,加上Wait()則等待開啟完成才往下執行
                    httpServer.OpenAsync().Wait();
                    Console.WriteLine("Web API host started...");
                    string line = null;
                    do
                    {
                        line = Console.ReadLine();
                    }
                    while (line != "exit");
                    //結束链接
                    httpServer.CloseAsync().Wait();
                }
                #endregion
    
            }
        }
    }

    3.2实现调用二

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using System.Web.Http;
    using System.Web.Http.SelfHost;
    
    namespace ConsoleApplication1
    {
        class Program
        {       
            static void Main(string[] args)
            {
                #region http://localhost:9001/api/Blah/Date
                HttpSelfHostConfiguration config = new HttpSelfHostConfiguration("http://localhost:9001");
                config.Routes.MapHttpRoute(
                    name: "API",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional });
                using (HttpSelfHostServer server = new HttpSelfHostServer(config))
                {
                    server.OpenAsync().Wait();
                    Console.WriteLine("Web API is started now");
                    Console.ReadLine();
                }
                #endregion
            }
        }
    }
  • 相关阅读:
    Linux GNOME桌面使用技巧大全
    联想旭日 C465A 开机白屏
    基础知识:编程的工作机制
    JavaCC 学习笔记
    笨办法学R编程(1)
    一些学习方法总结
    使用变量表示字、数字和值
    栈溢出2017doubly_dangerous
    栈溢出warmup_csaw_2016
    基础学习ret2text
  • 原文地址:https://www.cnblogs.com/macT/p/11183539.html
Copyright © 2011-2022 走看看