如何将值从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 文件末尾有一个额外的“行尾”字符,在?>
之后。尝试删除它,它会再次损坏,因为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?的主要内容,如果未能解决你的问题,请参考以下文章