从服务器获取数据到移动应用程序的最佳方式

Posted

技术标签:

【中文标题】从服务器获取数据到移动应用程序的最佳方式【英文标题】:Best way to getdata from server to mobile apps 【发布时间】:2017-04-14 18:39:21 【问题描述】:

也许这似乎是一个意见问题,但我真正需要知道的是,我是否以一种安全且性能良好的方式完成了我的工作。

我开发了很多移动应用程序(基于 xamarin),它们从本地服务器(windows 服务器)从 dbf 文件中获取数据。

我所做的是开发一些 asp.net webservices (asmx) 来从 dbf 文件中获取数据并通过 json 将其发送到我的应用程序(我喜欢 c#,这就是 asp.net 的原因)。

然后我们得到一个静态地址给我们的客户,安装 IIS,部署 web 服务和应用程序连接到它。我们将端口 80 从路由器重定向到服务器,一切正常。

我对 json 使用了一些基本的加密,并且应用程序有用户名和密码。

正如我在一开始所说的那样,我的问题是这是否是一种正确的方法,或者它可以以不同且更安全的方式(和性能,但我主要担心安全性)来完成,我没有拥有丰富的服务器经验。

【问题讨论】:

您是否尝试过相反的方式获取数据? 1,在您拥有 ASP.NET WebAPI 的服务器上(类似于您的 asp.net webservices) 2,使用 Xamarin WebClient 的移动设备通过您的 WebAPI 上的 https url 进行查询,并以 JSON 格式返回数据。因此,您的移动应用开始获取数据,您可以使用 HTTPS 协议。 嗯...我去看看 【参考方案1】:

您可以将 ASP.NET WebApi 和 WebClient 与 HTTPS 协议一起使用

在客户端(移动设备或其他):

string result = "";
using (WebClient webClient = new WebClient())

    string apiUrl = string.Format(@"https://webapi.yourdomain.com/api/0/1/", model.UserName, model.UserPass);
    webClient.Headers["Accept"] = "application/json";
    webClient.Encoding = System.Text.Encoding.UTF8;
    result = webClient.DownloadString(new Uri(apiUrl));

ResponseMyObj resultObj = JsonConvert.DeserializeObject<ResponseMyObj >(result);

在服务器端(ASP.NET WebApi):

public class MyObjController : BaseController

    [HttpGet]
    [ActionName("GetMyObjList")]
    public HttpResponseMessage GetMyObjList(string UserName, string UserPass)
    //Here you can check the credentials and retrieve data from the database and return them back to the client...
        object result = null;
        HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, result);
        return response;
    

【讨论】:

由于我没有得到任何其他答案,我认为您的建议是获得更好安全性的唯一选择

以上是关于从服务器获取数据到移动应用程序的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章

将手机位置从移动应用程序发送到服务器的最佳方式是啥?

将数据(复杂数据/原始数据)发送到服务并获取响应(复杂数据/原始数据)的最佳方式(WCF 或 WEB API)

以增量方式将数据从 GCP Datastore 移动到 BigQuery 的最佳做法

进行移动和服务器同步的最佳方式是啥?

移动端列表查询最佳实践

在 iPhone 应用程序中处理离线存储的最佳方式?