将数据从php发送到java

时间:2014-12-23 00:54:00

标签: java php bukkit

我在这个主题上发现了很多其他帖子,但似乎没有一个我需要的答案 我为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页面的数据。

2 个答案:

答案 0 :(得分:1)

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

  • 套接字
  • JMS - ActiveMQ等Java消息服务

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

答案 1 :(得分:1)

您可以在database端使用json/xml或设置PHP 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。