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

HttpClient使用实例

2014-12-26 12:23 260 查看

使用方法

使用HttpClient发送请求、接收响应很简单,一般需要如下几步即可。
1. 创建HttpClient对象。2. 创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。3. 如果需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HetpParams params)方法来添加请求参数;对于HttpPost对象而言,也可调用setEntity(HttpEntity entity)方法来设置请求参数。4. 调用HttpClient对象的execute(HttpUriRequest request)发送请求,该方法返回一个HttpResponse。5. 调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取服务器的响应头;调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容。程序可通过该对象获取服务器的响应内容。6. 释放连接。无论执行方法是否成功,都必须释放连接
HttpUtil httpClientUtil = new HttpUtil();
Map<String,Object> map = new HashMap<String, Object>();
map.put("orderInfo", json.toString());
String  str  = httpClientUtil.POSTMethod(ORDER_INFO_URL, map);


/**
* 以Post方法访问
* @param url 请求地址
* @param argsMap 携带的参数
* @return  String 返回结果
* @throws Exception
*/
public static String PostMethod(String url,Map<String, Object> argsMap) throws Exception{
byte[] dataByte = null;
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
//设置参数
UrlEncodedFormEntity encodedFormEntity = new UrlEncodedFormEntity(setHttpParams(argsMap), "UTF-8");
httpPost.setEntity(encodedFormEntity);
// 执行请求
HttpResponse httpResponse = httpClient.execute(httpPost);
// 获取返回的数据
HttpEntity httpEntity = httpResponse.getEntity();
if (httpEntity != null) {
byte[] responseBytes = getData(httpEntity);
dataByte = responseBytes;
httpPost.abort();
}
//将字节数组转换成为字符串
String result = bytesToString(dataByte);
return result;
}

/**
* 设置HttpPost请求参数
* @param argsMap
* @return BasicHttpParams
*/
private static List<BasicNameValuePair> setHttpParams(Map<String, Object> argsMap){
List<BasicNameValuePair> nameValuePairList = new ArrayList<BasicNameValuePair>();
//设置请求参数
if (argsMap!=null && !argsMap.isEmpty()) {
Set<Entry<String, Object>> set = argsMap.entrySet();
Iterator<Entry<String, Object>> iterator = set.iterator();
while(iterator.hasNext()){
Entry<String, Object> entry = iterator.next();
BasicNameValuePair basicNameValuePair = new BasicNameValuePair(entry.getKey(), entry.getValue().toString());
nameValuePairList.add(basicNameValuePair);
}
}
return nameValuePairList;
}


本文出自 “江山如画待赢归” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: