2017-01-02 2 views
4

java 클래스에서이 값을 테스트하고 java에 응답하기 위해 서버의 PHP 파일에 값을 전달하려고합니다. 문제는 null 값을 반환합니다.자바에서 PHP로 가치를 전달하는 방법은 무엇입니까?

자바 코드

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

문제를 고쳤습니다. 고마워요. 자바에게 공간을 되 돌리는 중이다. 이 공간은 ' Martin

답변

0

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

그렇지 않으면, 당신의 PHP 확인을 보이는 URLURLConnection 클래스를보십시오.

2

contract입니다 :

public String readLine() throws IOException

는 한 줄의 텍스트를 읽습니다. 한 줄은 줄 바꿈 ('\ n'), 캐리지 리턴 ('\ r') 또는 캐리지 리턴 중 임의의 하나로 끝나는 것으로 간주되며 바로 뒤에 줄 바꿈이옵니다.

반환 :

포함하지 않는 행의 내용을 포함하는 문자열 모든 라인 종료 문자, 는 null 스트림의 마지막 는

에 도달 한 경우 귀하의 경우에 PHP 스크립트는 true 문자열 (\n 제외)을 출력 스트림으로 출력하고 연결을 닫습니다.

PHP 측에 \n (echo "true\n";)을 추가하거나 다른 방법을 사용하여 Java 측에서 응답을 읽으십시오.

1

문제는 PHP 파일 앞에 PHP 태그 앞에 공백을 넣고 공백 만 반환하는 것이 었습니다. 이제이 코드는 완벽하게 작동합니다.

+0

그것은'?>'다음에 php 파일의 끝에 "End-of-line"문자가 있다는 것을 확신하는 것보다 효과적입니다. 그것을 제거하려고하면'end-of-line' 문자가'readLine()'에서 필수적이기 때문에 다시 중단됩니다. – djxak