我试图将一个值从java类传递到服务器上的PHP文件来测试这个值并回复java。它返回null值的问题。
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
$test = $_GET['test'];
if($test =="5"){
echo "true";
}
else {
echo "false";
}
?>
答案 0 :(得分:2)
是contract:
public String readLine() throws IOException
读取一行文字。一条线被认为是任何一条线终止的 换行符('\ n'),回车符('\ r')或回车符 然后立即换行。
<强>返回强>:
包含该行内容的String,不包括 任何行终止字符,,如果流的末尾有,则为null 已达成
在您的情况下,php脚本只输出true
字符串(不带\n
)到输出流中并关闭连接。
因此,在PHP端添加\n
(echo "true\n";
),或使用其他方法从Java端读取响应。
答案 1 :(得分:1)
问题是我在PHP文件中的php标记之前放了一个空格,它只返回空格。 现在这段代码完美无缺。
答案 2 :(得分:0)
尝试URL和URLConnection类
String loc = "http://localhost//test.php?test="+erg;
URL url = new URL(loc);
URLConnection con = url.openConnection();
InputStream i = con.getInputStream();
否则,您的PHP看起来没问题。