HttpClient httpClient = new HttpClient();
GetMethod getMethod = new GetMethod(uri);
InputStream responseBody = getMethod.getResponseBodyAsStream();
byte[] b= new byte[1024];
while (responseBody.read(b) >= 0) {
    System.out.println(new String(b));
}这段程序能把对应网页的代码打出来,但最后会少一小段,为什么?怎么才能把它完整输出?

解决方案 »

  1.   

    不要用字节来处理,用
    BufferedReader in = new BufferedReader(responseBody);//把字节流包装成字符
    String line=null;
    while((line=in.readLine())!=null){
        out.println(line);
    }处理字符应该用Reader,Writer,处理字节的时候才用InputStream和OutputStream
      

  2.   

    BufferedReader in = new BufferedReader(responseBody);
    这句不行的吧,没有这种构造方法的
      

  3.   

    String responseBody = new String(getMethod.getResponseBody());是不是直接就得到了?
    刚在另一个帖子上看见的。说实话没用过httpclient.
      

  4.   

    BufferedReader in = new BufferedReader(new InputStreamReader(responseBody));
    在线手工写难免会出错。
      

  5.   

    不想用getMethod.getResponseBody(),网页太大的话会警告
      

  6.   

    http://www.blogjava.net/jfy3d/archive/2005/05/11/4173.html
    用这个吧 省了加第三方包了