【问题标题】:Send data from php to java将数据从php发送到java
【发布时间】:2014-12-23 00:54:00
【问题描述】:

我找到了很多关于这个主题的其他帖子,但似乎都没有我需要的答案。
我为 Minecraft 编写了一个 Bukkit 插件,它可以将发布数据发送到 PHP 页面并从该页面获得返回。

现在我想不通的一件事。我想在页面上有一个按钮,当单击按钮时,将数据发送到 Java 插件并让插件打印消息。

我看到了一些关于套接字的东西。但是在阅读了它们之后,我不知道如何设置它们。
几乎在任何时候您都应该能够单击该按钮并将数据发送到 Java 插件,我可以随意使用该数据。

有谁知道如何让 Java 插件不断等待来自页面的数据?

我当前的代码:
(这会将玩家姓名发送到网站。)

String re = "";  
URL url = new URL("address here");  
URLConnection con = url.openConnection();  
con.setDoOutput(true);  
PrintStream ps = new PrintStream(con.getOutputStream());  
ps.print("player=" + player.getName());  
con.getInputStream();  
BufferedReader rd = new BufferedReader(new InputStreamReader(con.getInputStream()));  
String line;  
while ((line = rd.readLine()) != null) {  
   re += line + "\n";  
}  
rd.close();  
ps.close();

我的 php 只返回它获得的任何帖子数据。
它工作正常,但我想在我的 java 插件中监听来自 php 页面的数据。

【问题讨论】:

    标签: java php bukkit


    【解决方案1】:

    有很多方法可以在两台服务器之间进行通信。我会使用其中之一:

    • 套接字
    • JMS - Java 消息服务,例如 ActiveMQ

    他们都有可用的教程,只是谷歌。

    【讨论】:

    • 是的,我听说过套接字。我正在尝试弄清楚如何使用它们。
    【解决方案2】:

    您可以使用database,或在PHP 端设置json/xml api,然后访问database,或使用此示例代码从Java 访问json/xml 以打开网址。

    URL url = new URL("site.com/api/foo.json");
    
    try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) {
        for (String line; (line = reader.readLine()) != null;) {
            System.out.println(line);
        }
    }
    

    你可以看看this tutorial用Java解析JSON。

    【讨论】:

    • 所以你说我应该用Java写入一个文件并用PHP读取它并用PHP写入一个文件并用Java读取它?我认为这只适用于一种方式,因为 PHP 无法访问运行 Java 的文件。
    • @ParkerJones 从 PHP 中的数据库生成 JSON,并从 Java 中读取。使用 PHP 中的 api 从 Java 编写。这很复杂,但可行。最简单的方法是使用数据库。
    猜你喜欢
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 2013-01-31
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多