将数据从 php 发送到 java


Send data from php to java

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

有许多

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

  • 插座
  • JMS - Java Message Service,如 ActiveMQ

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

您可以使用

database,或者在PHP端设置一个json/xml api,并访问database,或者使用此示例代码从 Java 访问 json/xml以打开 url。

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);
    }
}

你可以看看本教程来解析 Java 的 JSON。