WebApi系列~自主宿主HttpSelfHost的实现

本文介绍了如何使用自宿主SelfHost技术将WebAPI服务部署到控制台程序中,并提供了详细的代码示例。

回到目录

宿主一词我们不会陌生,它可以看作是一个基础设施,它为一些服务和功能提供最底层的支持,如你的web应用程序可以运行在iis或者apache上,而这两个东西就是web应用程序的宿主,而今天说的自主宿主SelfHost就是说,它可以自己去监听自己的服务,如你可以把一个web应用程序宿主到一个console控制台程序上,或者把一个webApi宿主到一个console或者windowService上,这都是可以的。

一 需要添加一些程序集引用

二 代码实现

  

   #region Web Api监听
Assembly.Load("Lind.DDD.TestApi");  //手工加载某个api程序集的controller var config = new HttpSelfHostConfiguration("http://localhost:3333"); config.Routes.MapHttpRoute("default", "api/{controller}/{id}", new { id = RouteParameter.Optional }); var server = new HttpSelfHostServer(config); server.OpenAsync().Wait(); Console.WriteLine("Server is opened"); #endregion

 三   web api代码

 /// <summary>
    /// 测试webapi
    /// </summary>
    public class TestController : ApiController
    {
        // GET api/<controller>
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/<controller>/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/<controller>
        public void Post([FromBody]Demo value)
        {
            Thread.Sleep(10000);
            Logger.Core.LoggerFactory.Instance.Logger_Info(value.ToString());
        }

        // PUT api/<controller>/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/<controller>/5
        public void Delete(int id)
        {
        }
    }
    public class Demo
    {
        public string appName { get; set; }
        public string url { get; set; }
        public override string ToString()
        {
            return string.Format("appName:{0},url:{1},datetime:{2}", this.appName, this.url, DateTime.Now);
        }
    }

四   测试

回到目录

转载于:https://www.cnblogs.com/lori/p/4120428.html

### 农场自动化脚本开发教程与工具下载 农场自动化脚本开发可以基于Hamibot软件进行实现[^1]。Hamibot提供了一种简单快速的方法来操作手机,使用JS语言几行代码即可完成自动化任务。此外,Hamibot无需USB连接电脑,可以直接通过网页调试,并在手机上查看结果,极大地简化了开发和测试流程。 对于农场的具体自动化需求,可以参考以下内容: #### 1. Hamibot安装与配置 Hamibot的安装过程非常简便。用户可以在手机端直接安装Hamibot应用,并登录到其开发平台。通过该平台,可以编写、调试和运行自动化脚本。 #### 2. 自动化脚本开发 Hamibot已经集成了多种控件函数,开发者可以直接调用这些函数来实现农场中的自动化操作。例如: - **点击操作**:`click(x, y)` 可以用来模拟点击屏幕上的某个位置。 - **滑动操作**:`swipe(startX, startY, endX, endY, duration)` 可以用来模拟滑动操作。 - **文本输入**:`setText(text)` 可以用来输入指定的文本。 以下是一个简单脚本示例,用于自动点击农场中的某个按钮: ```javascript // 定义点击坐标 let x = 500; let y = 800; // 循环点击 function autoClick() { while (true) { click(x, y); // 点击指定位置 sleep(1000); // 每次点击后等待1秒 } } autoClick(); ``` #### 3. 工具下载与使用 如果需要现成的脚本,可以从Hamibot脚本市场中查找相关资源[^1]。此外,还可以参考GitHub等开源平台上的类似项目[^3]。需要注意的是,部分脚本可能带有中文名称或空格,这可能会导致运行问题,建议根据实际情况修改文件名。 #### 4. 游戏开发技术栈 如果希望深入了解农场的开发技术栈,可以参考开心农场1.5.0开源版的技术实现[^2]。该游戏采用了HTML5 Canvas作为渲染核心,并结合TypeScript和现代JavaScript语法(ES6+)进行开发。这种技术栈不仅适用于H5游戏开发,也可以为自动化脚本的设计提供灵感。 #### 5. 其他相关工具 除了Hamibot,还可以考虑使用Python结合Windows API来实现类似的自动化功能[^4]。例如,通过控制键盘按键和鼠标点击,可以实现对农场操作。以下是Python实现的一个简单示例: ```python import time from ctypes import windll # 定义按键码 VK_ENTER = 0x0D # 模拟按下Enter键 def press_enter(): windll.user32.keybd_event(VK_ENTER, 0, 0, 0) # 按下 windll.user32.keybd_event(VK_ENTER, 0, 2, 0) # 释放 # 主循环 while True: press_enter() # 按下Enter键 time.sleep(1) # 等待1秒 ``` ### 注意事项 在开发和使用自动化脚本时,请确保遵守相关法律法规以及应用商店的使用条款。未经授权的自动化操作可能导致账号封禁或其他不良后果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值