首页>代码>java自动检测获取http请求URL地址的网页内容编码工具类>/java自动检测获取http请求URL地址的网页内容编码工具类/src/com/zuidaima/encoding/util/Main.java
package com.zuidaima.encoding.util;

import java.io.BufferedInputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import org.apache.http.util.ByteArrayBuffer;
import org.apache.http.util.EncodingUtils;
import org.junit.Test;

public class Main {

	@Test
	public void testZuidaima() throws Exception {
		String url = "http://www.zuidaima.com/";
		String html = parseHttpEncoding(url);
		System.out.println(html);
	}

	@Test
	public void testBaidu() throws Exception {
		String url = "http://www.baidu.com/";
		String html = parseHttpEncoding(url);
		System.out.println(html);
	}

	@Test
	public void testSinaGBK() throws Exception {
		String url = "http://www.sina.com.cn/";
		String html = parseHttpEncoding(url);
		System.out.println(html);
	}

	@Test
	public void testSinaJp() throws Exception {
		String url = "http://sina.jp/";
		String html = parseHttpEncoding(url);
		System.out.println(html);
	}

	@Test
	public void testGov() throws Exception {
		String url = "http://www.gov.cn/";
		String html = parseHttpEncoding(url);
		System.out.println(html);
	}

	@Test
	public void testBeijingGov() throws Exception {
		String url = "http://www.beijing.gov.cn/";
		String html = parseHttpEncoding(url);
		System.out.println(html);
	}

	public String parseHttpEncoding(String url) throws Exception {
		BytesEncodingDetect bytesEncodingDetect = new BytesEncodingDetect();
		HttpURLConnection conn = null;
		URL serverUrl = new URL(url);
		conn = (HttpURLConnection) serverUrl.openConnection();
		conn.setInstanceFollowRedirects(false);
		conn.setRequestMethod("GET");
		conn.setConnectTimeout(10000);
		conn.setReadTimeout(10000);
		conn.connect();
		InputStream ins = conn.getInputStream();
		String charset = "utf-8";
		BufferedInputStream bis = new BufferedInputStream(ins);
		ByteArrayBuffer baf = new ByteArrayBuffer(bis.available());
		int data = 0;
		while ((data = bis.read()) != -1) {
			baf.append((byte) data);
		}

		int encodingGuess = bytesEncodingDetect.detectEncoding(baf
				.toByteArray());
		charset = BytesEncodingDetect.htmlname[encodingGuess];
		String html = EncodingUtils.getString(baf.toByteArray(), charset); // 转换为字符串
		conn.disconnect();
		System.out.println(url + ":" + charset);
		return html;
	}
}
最近下载更多
wei112233  LV15 2020年2月2日
1487092378  LV1 2019年7月29日
w123456  LV1 2017年4月9日
edsion  LV7 2017年4月2日
wfctyjt  LV1 2016年10月15日
依然在路上  LV17 2016年8月2日
hackxhao  LV15 2016年7月31日
erosares  LV9 2015年10月29日
yyz1314512  LV2 2015年9月16日
狼King  LV13 2015年7月11日
最近浏览更多
lichun cai  LV1 2023年5月24日
u一头热我认同你  LV1 2022年6月23日
lichang714  LV2 2021年10月8日
1798672867  LV21 2021年8月6日
Mirai 2021年6月9日
暂无贡献等级
流水浅浅  LV1 2021年5月9日
爱睡觉的小石头 2020年12月7日
暂无贡献等级
0312wangchen  LV26 2020年7月1日
wwwbl123  LV2 2020年5月26日
wei112233  LV15 2020年2月2日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友