如何设置直接托管在 Xamarin Forms 上的 Web Api 端点?

How I set up an Web Api end point hosted directly on Xamarin Forms?

我想在我的 xamarin 表单应用程序上公开一个 http 服务器以在 phone 之外公开数据,这可能吗?例如,returns 在 phone 内记录文件的端点。谢谢

是的,这是可能的。我们正在使用 EmbedIO。 看看这个github repo.

您可以像(基本示例)那样创建网络服务器

var server = new WebServer(o => o
                    .WithMode(HttpListenerMode.EmbedIO))
                    .WithLocalSessionManager()
                    .WithWebApi("/api", m => m.WithController(() => new YourController()));


public class YourController : WebApiController
{
   [Route(HttpVerbs.Get, "/test")]
   public Task<string> Get()
   {
      return Task.FromResult("test");
   }
}

当然你需要知道设备的 IP 地址。然后你可以设置它例如

_server = new WebServer(o => o
                    .WithUrlPrefixes($"http://yourIp:8088")
...