通过 HTTP 在 C# 中为 Elpis 构建远程命令 API

Building a remote command for Elpis in C# through HTTP API

我正在帮助构建 Elpis,这是一个使用 C# 和 WPF 构建的开源 pandora 音乐播放器。

现在我想要的是添加一个HTTP API 以便用户可以通过浏览器控制程序,例如play/pause,like/dislike 当前歌曲

后面的重点是通过移动设备访问HTTP来控制程序API。

我应该如何构建 HTTP API 以便它可以控制它?

Github 项目:https://github.com/adammhaile/Elpis

不知道为什么你希望用户通过浏览器控制 GUI 应用程序,很难给你好的建议。

假设您是 运行 Windows 上的 GUI,请查看 OWIN and the project Katana。它们允许您在自己的应用程序中轻松托管 HTTP 接口。

这对您的项目来说可能有点过头了,但我建议您使用 ASP.NET Web API 以便您可以构建后端 Web 服务。

假设您真的想要 "control the GUI remotely" 做您想做的事情,最简单的方法就是在您的 PC 和移动设备上安装 TeamViewer。然后您就可以远程进入并完全控制您的 GUI。

但我认为您追求的更像是 Google 音乐。在这里您可以通过 Internet 将音乐流式传输到您的移动设备上。如果是这种情况,我建议您查看 ASP.NET Web API.

用 C# 构建 Web 服务器并不难。您可以将它嵌入到您的应用程序中,并将应用程序的一部分作为 API 公开给 HTTP 端点。您可以使用 HttpListener class which is part of .NET, and do everything from the ground up yourself. Or you could use something like Nancy,它是一个轻量级框架,提供了许多有用的脚手架,例如 URL 路由。

我的自托管 API 最终使用了 Kayak(https://github.com/kayak/kayak)。

集成的例子可以在这里看到: https://github.com/adammhaile/Elpis/blob/master/Elpis/WebInterface.cs