【问题标题】:POST a Json object from an android app to localhost:9000 using play framework使用播放框架将 Json 对象从 android 应用程序发布到 localhost:9000
【发布时间】:2014-06-25 14:10:16
【问题描述】:

好吧,标题几乎说明了我想做的事情。如何通过单击 Android 应用程序中的按钮将 JSON 对象发布到我的 localhost:9000(以播放框架开始)。
我已经使用 AsyncTask 完成了 android 方法来发布我的 JSON 对象,并且它适用于其他 API。但是,我不确定如何将其发布到我的 localhost:9000 中,因为我想将后者用作 REST API。我是否必须在播放的路由或配置文件中写一些东西才能接收 JSON 对象? 例如,

GET           /someplace                     Controllers.applications.index()

如果这有帮助,这是我在 android asynctask 中执行帖子的方法:

@Override
protected String doInBackground(String... params) {
    JSONObject test = new JSONObject();
    try {
        test.put("Products", params[0]);
    } catch (JSONException e) {
        e.printStackTrace();
    }
    String send = test.toString();
    send = "Products=" + send;
    // localhost is my actual IP address
    executePost("http://<localhost>:9000/request",send);
    return null;
}

【问题讨论】:

  • 是的!我正在使用带有 play-java 的应用程序

标签: android json rest playframework-2.3


【解决方案1】:

您正在使用外部/互联网 IP 地址。为此,您确实必须配置路由器。路由器应将使用的端口转发到运行服务器的电脑。使用PC的LAN地址要容易得多,因为您不必转发。用ipconfig找出电脑的局域网ip。

【讨论】:

  • 在游戏中,我希望能够获取从 android 应用程序发送的内容。如果我将它发送到 :9000 我不应该使用 :9000/someplace 发布还是需要先创建 /someplace in play?
  • 可能。但是您选择使用游戏。我对此一无所知。对不起。阅读文档或搜索示例。
【解决方案2】:

有多种方法可以将您的应用程序连接到 localhost。一种简单的方法是通过您的手机(热点或网络共享)将您的计算机与互联网连接。 打开终端并运行 ifconfig 并获取 USB 连接(网络共享)提供的 IP 地址。使用此 IP 而不是 (localhost)。

【讨论】:

  • 您正在混合网络共享和 USB 连接。没有意义。
  • 当我在网络共享时运行 ifconfig 时,ip 由 usb0 提供。这就是我所说的 USB 连接。
  • 好的。那不一样。但他为什么要束缚?他可能有一个(W)LAN。并且只有在同一设备上的服务器和客户端才能连接到 localhost。而且他不需要互联网。
  • 这是一种方式。这取决于他。可以按照我所说的方式从移动设备连接到本地主机。我一直这样做。
猜你喜欢
  • 1970-01-01
  • 2014-07-16
  • 1970-01-01
  • 2016-06-12
  • 2015-12-17
  • 1970-01-01
  • 2013-12-09
  • 1970-01-01
  • 2014-10-16
相关资源
最近更新 更多