2011-10-26 79 views
3

我正在寫一個小應用程序,它根據http POST中的一些變量從Web服務器檢索一些html。返回的HTML數據有一個<pre>部分,其中有一些單詞使用換行符和製表符分隔很好,但我的應用程序沒有收到它們。代碼如下所示Apache HTTPClient不處理換行符

HttpPost post = new HttpPost("REMOVED FOR PRIVACY"); 

    try { 
     // Add your data 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
      //REMOVED FOR PRIVACY 

     post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     HttpResponse response = httpClient.execute(post, httpContext); 
     String htmlBrief = inputStreamToString(response.getEntity().getContent()).toString(); 
     return htmlBrief; 
     } 

我想可能是我如何把它通過一個BufferedReader像這樣

private StringBuilder inputStreamToString(InputStream is) throws IOException { 
    int c; 
    StringBuilder total = new StringBuilder(); 

    // Wrap a BufferedReader around the InputStream 
    BufferedReader rd = new BufferedReader(new InputStreamReader(is)); 

    // Read response until the endIndex 
    while ((c = rd.read()) != -1) { 
     total.append((char)c); 
    } 

    // Return full string 
    return total; 
} 

讀取響應我想這可能是因爲我在在線閱讀在緩衝式閱讀器中,所以我一次轉換到一個字符,但它沒有幫助解決問題。

任何幫助將不勝感激。

謝謝,本

+0

你試過rd.readLine()嗎?爲什麼你使用BufferedReader而沒有從緩衝中獲益呢? – pawelzieba

+0

是的,我試過讀行。我轉而只讀,因爲我認爲readline是我失去我的新線人物的原因。 –

+0

換行輸入流,看看究竟在流中。 – pawelzieba

回答

0

使用CharlesFiddler檢查什麼是在HTTP請求的身體實際發送。

最有可能的問題:

  • 不匹配的字符集客戶端&服務器;
  • 未解碼URL編碼的正文。