2017-01-02 119 views
4

我想從java類的值傳遞到服務器上的PHP文件來測試這個值並回復到java。它返回空值的問題。如何將值從java傳遞給PHP?

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"; 
} 
?> 
+0

究竟返回null? –

+0

我已經修復了這個問題,謝謝。它正在返回一個空間給java。這個空間來自於'<?php'標籤之前的'HTML',因爲在我的php文件中它是'<?php'標籤之前的空格,我對它進行了修復。 @ k5_ – Martin

回答

0

嘗試URLURLConnection

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

否則,你的PHP看起來不錯。

2

它是由contract

public String readLine() throws IOException

讀取一行文本。的線被認爲是由一個換行(「\ n」)中的任一項 終止,回車(「\ r」),或回車 一個換行符緊跟。

返回

包含行的內容,不包括 字符串任何行終止符,或空如果該流的末尾, 達到

在你的情況下,PHP腳本只是輸出true字符串(沒有\n)到輸出流並關閉連接。

因此,在PHP端添加\necho "true\n";),或使用其他方法從Java端讀取響應。

1

這個問題是我已經把空間PHP文件中的PHP代碼之前,它只是返回的空間。 現在這個代碼完美的工作。

+0

這是因爲是工作,比我幾乎可以肯定,你必須在你的PHP文件的末尾一個額外的「結束行」字,後'?>'。嘗試刪除它,它會再次中斷,因爲'readLine()'強制結束符。 – djxak