HttpURLConnection.getInputStream()只能读取网页部分内容的问题
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Collection {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String url = getUrl();
testcnn(url);
}
static String getUrl(){
int num=1;
String url="http://bbs.cheshi.com.cn/profile-uid-784.html";//读取此URL指向的网页的内容
return url;
}
static void testcnn(String url){
HttpURLConnection httpcnn = null;
StringBuffer strBuffer = new StringBuffer();
Reader reader =null;
try {
URL netAddress = new URL(url);
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "15000");
httpcnn =(HttpURLConnection) netAddress.openConnection();
httpcnn.setRequestMethod("GET");
httpcnn.setRequestProperty("User-Agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");
httpcnn.setDoOutput(true);
httpcnn.setDefaultUseCaches(true);
httpcnn.setDoInput(true);
reader = new InputStreamReader(httpcnn.getInputStream(),"GBK");
int read = reader.read();
while(read!=-1){
char tmp = ((char)reader.read());
strBuffer = strBuffer.append(tmp);
System.out.println(strBuffer.toString());
read = reader.read();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if (httpcnn != null) {
httpcnn.disconnect();
httpcnn = null;
}
}
String subStr = strBuffer.toString();
System.out.println(subStr);
}
}
问题是读取到的指定网页内容是不完整的,具体是每隔一个字符读取一个,诸位看一下是哪儿出的问题,谢谢