黑马程序员技术交流社区
标题:
为什么字节流不能获取搜狐网页面
[打印本页]
作者:
孙胜
时间:
2013-4-27 21:21
标题:
为什么字节流不能获取搜狐网页面
本帖最后由 孙胜 于 2013-5-7 22:41 编辑
以下代码,获取UTF-8网站,如:baidu, hao120
GBK网站,如sina, qq, tudou, youku.等都没有任何问题
为什么单单sohu网站就是乱码。
import java.io.*;
import java.net.*;
public class MyIE {
private URL url;
private File file;
private BufferedOutputStream out;
private BufferedInputStream in;
public static void main(String[] args) throws Exception {
new MyIE("http://www.sohu.com", "sohu.html");
}
public MyIE(String url, String file) {
// TODO Auto-generated constructor stub
try {
this.url = new URL(url);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.file = new File(file);
downByByte();
}
private void downByByte() {
URLConnection conn = null;
try {
conn = url.openConnection();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
in = new BufferedInputStream(conn.getInputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
out = new BufferedOutputStream(new FileOutputStream(file));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int len;
byte[] buf = new byte[1024];
try {
while((len = in.read(buf)) != -1) {
out.write(buf, 0, len);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
if(out != null)
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(out != null)
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
复制代码
作者:
袁梦希
时间:
2013-4-27 23:23
一会给你解答
作者:
孙胜
时间:
2013-4-28 15:44
怎么没有人解答?
作者:
孙金鑫
时间:
2013-5-6 00:33
哥们,我试了一下,没问题啊,没有所谓的乱码
作者:
柳汉杰
时间:
2013-5-6 18:53
http流用了gzip压缩。在解析之前先gzip解压缩,就好了。
http://www.iteye.com/problems/54506
作者:
孙胜
时间:
2013-5-7 22:40
不知道什么原因,已经没有问题了,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2