您的位置:首页 > 理论基础 > 计算机网络

HttpClient,HttpGet

2016-03-24 16:39 375 查看
HttpClient使用HttpGet传数据

package com.ghjz.utils;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.apache.http.HeaderElement;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.util.EntityUtils;

/**
* 观翰家接口
* @author ZX
*
*/
public class Ghjz {

private static org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(Ghjz.class);
private static final String URL = "http://www.ttnz.net/Track/cps.html?";

public static String httpGet(InvestInfoBean bean) throws ClientProtocolException, IOException, URISyntaxException {
HttpClient httpclient = new DefaultHttpClient();
String result = "";
try {
// 连接超时
httpclient.getParams().setParameter(
CoreConnectionPNames. CONNECTION_TIMEOUT, 5000);
// 读取超时
httpclient.getParams().setParameter(
CoreConnectionPNames. SO_TIMEOUT, 5000);

HttpGet hg = new HttpGet (URL+bean.toString());
//模拟浏览器
hg.addHeader( "User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31");
String charset = "UTF-8";
hg.setURI( new java.net.URI(URL+bean.toString()));
HttpResponse response = httpclient.execute(hg);
HttpEntity entity = response.getEntity();
if (entity != null) {
charset = getContentCharSet(entity);
// 使用EntityUtils的toString方法,传递编码,默认编码是ISO-8859-1
result = EntityUtils.toString(entity, charset);
}

} finally {
httpclient.getConnectionManager().shutdown();
}
log.info("result:--------------:"+result);
return result;
}

/**
* 默认编码utf -8
* Obtains character set of the entity, if known.
*
* @param entity must not be null
* @return the character set, or null if not found
* @throws ParseException if header elements cannot be parsed
* @throws IllegalArgumentException if entity is null
*/
public static String getContentCharSet(final HttpEntity entity)
throws ParseException {

if (entity == null) {
throw new IllegalArgumentException("HTTP entity may not be null");
}
String charset = null;
if (entity.getContentType() != null) {
HeaderElement values[] = entity.getContentType().getElements();
if (values.length > 0) {
NameValuePair param = values[0].getParameterByName("charset" );
if (param != null) {
charset = param.getValue();
}
}
}

if(StringUtils.isEmpty(charset)){
charset = "UTF-8";
}
return charset;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: