【问题标题】:Expose sql database as a web service for access from android phone将 sql 数据库公开为 web 服务,以便从 android 手机访问
【发布时间】:2011-07-25 11:37:46
【问题描述】:

我使用 Eclipse 在 Android 中创建了两个 EditText 字段和一个提交按钮。现在我需要在 .NET 中开发一个 Web 服务来公开我的数据库。我必须说,在发布之前我确实看到了这个 [http://www.hanselman.com/blog/CreatingAnODataAPIForStackOverflowIncludingXMLAndJSONIn30Minutes.aspx],但我不知道如何使用 WCF 服务,而是我更喜欢 REST 或 SOAP。

我现在只需要通过单击一个按钮来调用 Web 服务,该按钮将在 ListView 中使用 Android 模拟器上的复选框获取数据库特定列的值列表

请谁能告诉我该怎么做?

谢谢

【问题讨论】:

    标签: .net android web-services


    【解决方案1】:

    编辑:

    鉴于您在下面的注释,我将跳过 Android 上后台服务的“...同步 SQLiteDatabase...”部分(因为目标 Android 设备上似乎没有任何要同步或缓存的内容) .我会让那个后台服务直接调用你的网络服务。

    这里重要的是在 工作线程 中执行来自 Android 应用程序的实际 HTTP 请求。如果您从 UI 线程(也称为默认线程或主线程)调用它,Web 服务很可能无法快速响应以保持应用程序处于活动状态,Android 会将其视为无响应应用程序。

    默认情况下,Android Service 将在调用者所在的线程中运行(很可能是 UI 线程)。您可以查看为您管理所有线程的IntentService

    但在这之前,我认为您需要设计您的数据库并整理您的网络服务。不幸的是,我对微软的产品有点生疏,无法为您提供有用的帮助。但我认为那里肯定有大量的教程和“操作方法”。

    起源:

    Wikipedia 对 REST 的定义非常好。这个概念也很好地映射到Android ContentProvider's concept

    假设您想在 Web 服务器上公开数据库,我想我会编写一个简单的基于 REST 的 Web 服务(在您的 Web 服务器上),它使您可以访问应用程序所需的表和列(不再,不少)。

    默认情况下,我可能会继续编写后台服务(在 Android 上),它会定期同步 SQLiteDatabase(仍在 Android 上),可能通过 ContentProvider(注意 ContentProviders 不是与数据库,实际上我什至会说与数据库通信甚至不是ContentProvider 的主要功能。

    最后我会在同步结束时广播一个通知(仍然在 Android 上),以便任何(Android)客户端知道何时自动从 SQLite 数据库请求新数据。也许这种新数据的获取也可以通过按下 UI 中的按钮来触发,以允许用户也触发手动更新。

    如果您写更多关于您的 Android 应用程序以及它应该实现的内容,我将修改我的答案,使其更加正确和具体。

    【讨论】:

    • 好的,这就是我的 Android 应用程序要做的事情: 1) 要求用户在那些 Edittext 字段中输入两个值,然后按下提交按钮。我已经在 Android 中创建的 java 文件,因为它很容易 2)单击提交按钮时,我需要调用在 .NET 中创建的 Web 服务(REST 或 SOAP 任何东西都可以),它会给出我的数据库表的特定列的所有条目......所以现在我只想有人告诉我如何首先在 VS2008 中创建自己的 SQL 数据库,编写代码以公开它,然后再次编写代码供 Android 调用它.你明白了吗?
    • 是的,现在我明白了,感谢您的澄清:-)。我想这比我们从一开始就意识到的要大得多。我建议您将项目分解为较小的任务。我看到他们自己至少需要将三个主要任务分解为较小的可行任务):1)在Web服务器上创建您的数据库并用一些测试数据填充它。 2) 创建您的网络服务。我会建议一个基于这样的 REST,虽然它更容易,更轻量级。验证 Web 服务是否按您希望的方式工作。 3) 编写您的 Android 应用程序。
    • 不幸的是我对微软的产品不太熟悉,因此我无法为您提供有关如何在 Visual Studio 中创建数据库的帮助(我假设您需要它是 MS SQL Server 数据库,否则你不会这么清楚地指定它)。不过,那里肯定有大量的教程和“操作方法”。
    • 嘿感谢您的快速回复!我需要告诉你,我对 Android 和 .NET 都是新手。我刚刚在他们两个中执行了一些基本教程,这是我可以说的第一个主要项目。您的 1) 点建议我应该在 Web 服务器上创建一个数据库..我能告诉我如何在 VS2008 中创建 SQL 数据库的任何教程 ..ur 2) 点..我应该在哪里创建 REST Web 服务。 .in .NET 本身?验证意味着首先在我的电脑上运行网络服务,对吗?我想我们稍后会讨论 Android 代码...谢谢,请帮助我..我将非常感激 :-) :-)
    • 1) 我猜你最喜欢的搜索引擎(google、bing、...)是你最好的朋友之一。您可以尝试搜索“Visual Studio 2008 sql 教程”或其他内容。 2)如果您需要坚持使用 Microsoft 的 .NET 基础架构,我想您会用 .NET 编写它,是的(请注意,REST 只是一个概念,而不是一种技术)否则 PHP 是一种相当简单的服务器端脚本语言,它是大多数网络主机也支持。是的,要验证 Web 服务将是通过手动输入 REST-url 在您的计算机上对其进行测试,并验证返回的 JSON 或 XML 是否符合预期:-)
    猜你喜欢
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多