Apache HTTPClient不处理新行字符

时间:2011-10-26 04:57:44

标签: android apache http

我正在编写一个小应用程序,它根据http POST中的一些变量从Web服务器检索一些html。返回的HTML数据中有一个<pre>部分,其中一些单词使用换行符和制表符很好地间隔开,但我的应用程序却没有收到它们。代码如下

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;
}

我认为这可能是因为我在缓冲读卡器中逐行阅读,所以我一次切换到一个字符,但它没有帮助解决问题。

非常感谢任何帮助。

谢谢,Ben

1 个答案:

答案 0 :(得分:0)

使用CharlesFiddler检查HTTP请求正文中实际发送的内容。

最有可能的问题:

  • 客户端的字符集不匹配&amp;服务器;
  • 无法解码URL编码正文。