从外部服务器调用内部Web Api
本文关键字:Web Api 内部 调用 服务器 从外部 | 更新日期: 2023-09-27 17:58:14
我构建了一个Web Api,它托管在一个只允许内部访问的服务器中,并且我有一个客户端应用程序。我必须在中间建立一些东西来建立这种联系。
客户端<->某些<->Web Api(内部访问)->数据库
我需要构建什么?我是个发明家,现在我有这个问题。
确保您可以从设备中点击web api的URL。简单的方法是在您的设备上运行此处的网络功能示例,并查看您可以使用IsReachable和IsRemoteReachable API访问服务器。它的Xamarin表单,不是纯粹的Xamarn,但应该让你看看你是否可以访问你的服务器。
https://blogs.msdn.microsoft.com/devfish/2016/06/22/xam-plugins-connectivity-all-apis-sample/
这里是一个函数的实现,它显示从客户端应用程序到web服务的获取和发布数据,这将在桌面应用程序(win-form等)上工作。要使用以下相同的代码从另一个网站访问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)
{
}
}
}