繁体   English   中英

从外部服务器调用内部Web Api

[英]Call internal Web Api from a external server

我建立了一个托管在服务器中的Web Api,该服务器仅允许内部访问,并且具有客户端应用程序。 我必须在中间建立一些东西才能建立连接。

客户端<->某些<-> Web Api(内部访问)->数据库

我需要建造什么? 我是一个初学者,现在有这个问题。

确保可以从设备访问Web API的URL。 简便的方法是在设备上运行网络功能示例,并查看可以使用IsReachable和IsRemoteReachable API进入服务器。 它的Xamarin形式,而不是纯Xamarin,但应该让您看看是否可以打入服务器。

https://blogs.msdn.microsoft.com/devfish/2016/06/22/xam-plugins-connectivity-all-apis-sample/

这是一个功能的实现,该功能显示从客户端应用程序到Web服务的获取和发布数据,这将在桌面应用程序(win窗体等)上工作。 要使用下面的相同代码从另一个网站访问Web api,必须在Web api项目中启用cors

public static  async Task UploadAsync(ReadingModel reading)
{
    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri("http://your-api-domain.net/");
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        // HTTP GET
        HttpResponseMessage response = await client.GetAsync("api/yourapi");
        if (response.IsSuccessStatusCode)
        {
            Product product = await response.Content.ReadAsAsync<Product>();
            Console.WriteLine("{0}\t${1}\t{2}", product.Name, product.Price, product.Category);
        }

        // HTTP POST
        try
        {
            HttpResponseMessage response = await client.PostAsJsonAsync("api/yourapi", reading);
            if (response.IsSuccessStatusCode)
            {
                // do your stuff
            }
        }
        catch (Exception)
        {

        }

    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM