package com.joke.util;

import java.io.*;
import java.net.*;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import net.sf.json.JSONArray;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
import com.joke.vo.AutoVo;

/**
 * 百度接口提供的热词
 * 
 * @author yangzhongying mail:j@seejoke.com
 * @date 2014-8-13 下午01:13:05
 * @package com.joke.util
 */
public class BaiduService {

	private static JSONObject jsonData;
	private static JSONArray info;

	/**
	 * 获取10个关键字匹配
	 * 
	 * @param keyword
	 * @param limit
	 * @return
	 * @throws HttpException
	 * @throws IOException
	 * @throws JSONException
	 */
	public static List<AutoVo> getSuggestionList(String keyword)
			throws HttpException, IOException, JSONException {
		List<AutoVo> list = new ArrayList<AutoVo>();
		HttpClient httpClient = new HttpClient();
		GetMethod getMethod = new GetMethod(
				"http://suggestion.baidu.com/su?wd="
						+ URLEncoder.encode(keyword, "utf-8")
						+ "&p=3&cb=window.bdsug.sug&t=1302750139281");
		// Execute the method
		httpClient.executeMethod(getMethod);
		getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
				new DefaultHttpMethodRetryHandler());

		// If failed, return empty list
		int statusCode = httpClient.executeMethod(getMethod);
		if (statusCode != HttpStatus.SC_OK) {
			return list;
		}
		// Get the response body
		byte[] responseBody = getMethod.getResponseBody();
		String response = new String(responseBody, "gbk");
		// Pick the json part
		Pattern pattern = Pattern.compile("\\{.*\\}");
		Matcher matcher = pattern.matcher(response);
		if (matcher.find()) {
			String jsonStr = matcher.group();
			if (jsonStr != null && !"".equals(jsonStr)) {
				jsonData = JSONObject.fromObject(jsonStr);
				info = jsonData.getJSONArray("s");
				AutoVo bo = null;
				for (int i = 0; i < info.size(); i++) {
					bo = new AutoVo();
					String hotword = (String) info.get(i);
					if (hotword != null && !"".equals(hotword)) {
						bo.setId(i);
						bo.setKeyword(hotword);
						list.add(bo);
					}
				}
			}
		}
		return list;
	}
}
最近下载更多
mengfanyun  LV9 2021年6月22日
fengshaoye  LV10 2021年2月24日
linier  LV11 2019年8月1日
东东大牛  LV2 2019年3月30日
ylife87  LV12 2018年8月6日
wyzl3321  LV25 2018年7月17日
重量级  LV1 2018年3月27日
wangli745235136  LV3 2018年1月13日
你的小可爱  LV13 2017年12月7日
yyy123  LV1 2017年10月30日
最近浏览更多
shuangfu  LV25 2023年12月1日
fxlmop  LV1 2023年9月4日
luoqianggggg  LV1 2023年5月26日
adminadminsqwqe  LV8 2023年5月11日
312468457  LV1 2023年1月15日
3473084268  LV9 2022年12月12日
zhanghaiboeee  LV3 2022年11月27日
微信网友_6040315240812544  LV8 2022年10月20日
四小只by白丫头  LV3 2022年5月10日
TanXing13  LV9 2021年12月22日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友