如何将值从java传递给PHP?

Posted

技术标签:

【中文标题】如何将值从java传递给PHP?【英文标题】:How to pass value from java to PHP? 【发布时间】:2017-05-16 05:07:02 【问题描述】:

我正在尝试将 java 类中的值传递给服务器上的 php 文件,以测试该值并回复 java。它返回空值的问题。

Java 代码

package phpJava;
import java.io.*;
import java.net.URL;
import javax.swing.JOptionPane;
public class phpbirgde 
public static void main(String[] args) 
        try
            String erg = JOptionPane.showInputDialog("2+3");
            BufferedReader br = new BufferedReader(new InputStreamReader(new URL("http://localhost//test.php?test="+erg).openStream()));
                    String b = br.readLine();
                    System.out.println(b); // print the string b
                    if(b.equalsIgnoreCase("true"))
                        System.out.println("It is true");
                    
                    else 
                        System.out.println("False");
                    

             catch(IOException e)
                System.out.println("error");
            


    

PHP 代码

 <?php
 $test = $_GET['test'];
 if($test =="5")
 echo "true";
 
 else 
 echo "false";

?>

【问题讨论】:

究竟返回null的是什么? 我已经解决了这个问题,谢谢。它正在向java返回一个空间。这个空间来自 'html',因为在我的 php 文件中,它是 ' 【参考方案1】:

问题是我在 PHP 文件中的 php 标记之前放了一个空格,它只返回空格。 现在这段代码完美运行。

【讨论】:

它按原样工作,我几乎可以肯定你的 php 文件末尾有一个额外的“行尾”字符,在 ?&gt; 之后。尝试删除它,它会再次损坏,因为end-of-line 字符对于readLine() 是必需的。【参考方案2】:

这是contract:

public String readLine() throws IOException

读取一行文本。一条线被任何人认为是终止的 换行符 ('\n')、回车符 ('\r') 或回车符 紧接着是换行符。

返回

包含行内容的字符串,不包括 任何行终止字符, 或 null 如果流的末尾有 已到达

在您的情况下,php 脚本只是将true 字符串(不带\n)输出到输出流中并关闭连接。

所以,在 PHP 端添加 \n (echo "true\n";),或者使用其他方法从 Java 端读取响应。

【讨论】:

【参考方案3】:

试试URL 和URLConnection 类

String loc = "http://localhost//test.php?test="+erg;
URL url = new URL(loc);
URLConnection con = url.openConnection();
InputStream i = con.getInputStream();

否则,你的 PHP 看起来没问题。

【讨论】:

以上是关于如何将值从java传递给PHP?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用会话将值从一个php页面传递到另一个页面

如何在同一页面内将值从 Js 传递到 PHP [重复]

如何将值从另一个文件或命令提示符传递给类

如何将值从javascript变量传递给剃刀变量?

如何将值从angularjs传递给节点[重复]

如何将值从组件传递给道具并设置状态