【问题标题】:Connecting Android app to Java server via JSON通过 JSON 将 Android 应用程序连接到 Java 服务器
【发布时间】:2012-07-03 06:45:58
【问题描述】:

我正在创建一个在 MSSQL 数据库中存储“名称”“纬度”“经度”等数据的 Android 应用程序。

我打算将 android 应用程序连接到服务器,然后再连接到 mssql 数据库服务器。

我已经建立了 Java -> MSSQL 连接正常,可以毫无问题地读取/写入数据。

现在我希望能够在 java 服务器和 android 应用程序之间发送/接收这些对象。

我创建了“file.json”并将其存储在包含以下内容的 Web 服务器上:

{"name":"shopname","address":"123 fake street","type":"unknown", "notes":"service is really good."}

我可以毫无问题地将这些数据拉回到一个对象中。

我的问题是:

如何让 java 服务器将此数据提供给我的 android 应用程序?我希望能够使用:

URL objectGet = new URL("http://10.0.1.8/file.json");
    URLConnection yc = objectGet.openConnection();
    BufferedReader in = new BufferedReader(
            new InputStreamReader(
            yc.getInputStream()));

然后

DataObject objs = gson.fromJson(in, DataObject.class);

最好的设置方法是什么?

【问题讨论】:

  • 您是否有可以将 Java/MSSQL 桥接器作为 servlet 运行的应用服务器(即 tomcat 或其他)? 如果不是 - 数据是否有点静态 - 即定期重新生成 json 是否可以接受?
  • 不,我没有设置tomcat或其他服务器。我打算只使用一个java应用程序。数据根本不是静态的。它会根据安卓手机的 GPS 坐标而变化。但我打算定期重新生成 json。

标签: java android json http


【解决方案1】:

请参考我在这篇文章中的回答。 Why null value returns in json parsing in android?

这可能会对您有所帮助。最好的方法是:

  • 使用 read() 函数连接到服务器并从服务器获取 JSON 字符串
  • 使用 GSON fromJson 函数将读取的数据解析到您的对象实例

【讨论】:

  • 感谢您使用 GSON 将 JSON 数据解析回对象的回复。我试图弄清楚服务器端。如何让 java 服务器生成 JSON 数据并在 javaserver.example.com/file.json 提供?如何从 android 服务器(名称、纬度、经度)发送数据?我开始想也许我最好使用 PHP 作为中间层,因为它似乎更容易设置。
  • 所以这是一个 J2EE 问题。无论如何,您创建一个 java servlet 并在 doGet/doPost 方法中创建一个必要的 JSON 字符串,然后将此 JSON 字符串写入响应的 writer 对象。请参阅此链接以制作这样的servlet。还使用response.setContentType("application/json"); 将内容类型设置为application/json
【解决方案2】:

要测试您的应用,您可以通过 IIS 或 Apache 在您的开发机器上托管服务,然后通过

访问您的服务器
http://10.0.2.2/file.json

10.0.2.2 是主机环回接口的特殊别名(即开发机器上的 127.0.0.1)

请参阅:官方文档中的Emulator Network Address Space

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 2012-09-19
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多