2013-07-07 34 views
0

我嘗試使用結果頁面獲取網頁的內容時,對Java 喜歡當我從創建如果在Java中

http://localhost/java.php?un=dubking&password=password 
獲取數據給我做Java中的登錄系統的URL內容聲明

當登錄憑據是正確的,該網頁將只顯示「真」爲HTML,但是當我使用該數據從該網頁實際上具有「真正」在其中的if語句的if語句不起作用,有沒有我做錯了或者這在Java中是不可能的?

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.MalformedURLException; 
import java.net.URL; 
class test2 { 
    public void calc() { 
     try { 
      URL yahoo = new URL("http://localhost/java.php?un=" + username + "&password=" + password); 
      BufferedReader in = new BufferedReader( 
        new InputStreamReader(yahoo.openStream())); 
      String inputLine; 

      while ((inputLine = in.readLine()) != null) { 
       // Process each line. 
       String html = inputLine; 
       if (html == "true") { 
        System.out.print("You have successfully logged in."); 
       } else { 
        if (html == "false") { 
         System.out.println("Wrong username or password."); 
        } 
        if (html != "true" && html != "false") { 

         System.out.println("something went wrong."); 
         System.out.println(html); 
        } 
       } 
      } 
      in.close(); 

     } catch (MalformedURLException me) { 
      System.out.println(me); 

     } catch (IOException ioe) { 
      System.out.println(ioe); 
     } 

    } 
} 
+0

這是什麼都用PHP做什麼? – PeeHaa

+0

它可能會或可能不會工作。始終使用'「true」.equals(html)'而不是'=='運算符。 –

+0

我不相信人們開始編碼,並留下這些簡單的概念O.o – anshulkatta

回答

4

使用String#equals來比較String的內容。 ==運算符比較對象引用。從BufferedReader#readLine返回的String將與您的應用中使用的任何實例Strings(例如「true」,「false」)不同。

更好的是仍然使用equalsIgnoreCase來處理任何情況下的變化。另外一個喬達條件將防止出現NullPointerException應該htmlnull

if ("true".equalsIgnoreCase(html)) { 
0

您正在嘗試使用查詢字符串相等==和!=,並且不會有任何效果。您需要將==改爲.equals。像這樣

"true".equals(html) 

或者

!"true".equals(html)