2012-04-18 39 views
0

我正在使用PHP腳本通過我的Java程序訪問我的數據庫。如果腳本成功運行並且發送了電子郵件,PHP腳本將發送併發送電子郵件並打印。 java程序使用:從PHP腳本返回的字符串到Java程序中的字符串無法正常工作

InputStream in = null; 
      try { 
       httpPost.setEntity(new UrlEncodedFormEntity(nvps)); 
       HttpResponse response = httpclient.execute(httpPost); 
       in = response.getEntity().getContent(); 
       String inn = in.toString(); 
      } catch (IOException e) { 

      } 

      String result = null; 
      String sent = "sent"; 
      try{ 
       BufferedReader reader = new BufferedReader(new InputStreamReader(in,"iso-8859-1"), 8); 
       StringBuilder sb = new StringBuilder(); 
       String line = null; 
       while ((line = reader.readLine()) != null) 
        sb.append(line); 
       in.close(); 
       result = sb.toString(); 

爲了從PHP腳本得到什麼打印。使用日誌我知道「已發送」正在返回,並且PHP腳本成功運行時變量「result」的值爲「已發送」。 現在在java文件我試圖做到以下幾點:

Log.e("result",result); <-- returns sent 

      if(result.equals("sent")) 
      {     
       ... do something 
      } 

我已經嘗試了幾種不同的方式,但無論我嘗試比較「結果」,以何種方式「發送」它總是失敗。 如果有人知道爲什麼會發生這種情況,我會非常感謝任何建議。我確定它的愚蠢,但我認爲它必須與PHP不完全返回我認爲它是什麼,即使壽日誌顯示它。

+0

你確定結果的值' 「發送」'? – 2012-04-18 17:34:40

+0

你是否已經打印出'result'屬性的實際值,或者你只是在猜測? – 2012-04-18 17:35:08

+0

爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 – 2012-04-18 17:36:47

回答

1

也許嘗試:

result.toString().equalsIgnoreCase("sent") 

你也可以這樣做:

Log.e("result",result); 

System.out.println("!" + result.toString() + "!"); 

if(result.equals("sent")) 
{     
    System.out.println("Success"); 
} 
+0

System.out.println(「!」+ result.toString()+「!」); // BAM – 2012-04-18 18:13:41

+0

@AndrewThompson編輯;) – 2012-04-18 18:37:31

+0

噪音刪除.. – 2012-04-18 18:39:32

相關問題