封装的工具类,get 下载调用 downloadURL(url),post 下载调用 POSTMethod()

import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.BufferedHttpEntity;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import java.io.ByteArrayOutputStream;
import java.util.*;
/**
* User: Cheng
* Date: 2019/4/22
* Time: 17:33
* Description: No Description
*/
public class PostUtil {
/**
* 以 Post 方法访问
*
* @param url 请求地址
* @param argsMap 携带的参数
* @param content 内容
* @return String 返回结果
* @throws Exception
*/
public static byte[] POSTMethod(String url, Map<String, Object> argsMap, String content) throws Exception {
// argsMap,content 都可以带参,二选一
byte[] dataByte = null;
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
if (MapUtils.isNotEmpty(argsMap)) {
// 设置参数
UrlEncodedFormEntity encodedFormEntity = new UrlEncodedFormEntity(setHttpParams(argsMap), "UTF-8");
httpPost.setEntity(encodedFormEntity);
}
if (StringUtils.isNotEmpty(content)) { httpPost.setEntity(new ByteArrayEntity(content.getBytes()));
}
// 执行请求
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;
return dataByte;
}
/**
* 获取 Entity 中数据
*
* @param httpEntity
* @return
* @throws Exception
*/
public static byte[] getData(HttpEntity httpEntity) throws Exception { BufferedHttpEntity bufferedHttpEntity = new BufferedHttpEntity(httpEntity);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bufferedHttpEntity.writeTo(byteArrayOutputStream);
byte[] responseBytes = byteArrayOutputStream.toByteArray();
return responseBytes;
}
/**
* 设置 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<Map.Entry<String, Object>> set = argsMap.entrySet();
Iterator<Map.Entry<String, Object>> iterator = set.iterator();
while(iterator.hasNext()){ Map.Entry<String, Object> entry = iterator.next();
BasicNameValuePair basicNameValuePair = new BasicNameValuePair(entry.getKey(), entry.getValue().toString());
nameValuePairList.add(basicNameValuePair);
}
}
return nameValuePairList;
}
public static byte[] downloadURL(String url) throws Exception { byte[] dataByte = null;
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity entity = httpResponse.getEntity();// 获取返回数据
if (entity != null) {
// 根据 entity 创建 BufferedHttpEntity 与创建流对象
BufferedHttpEntity bufferedHttpEntity = new BufferedHttpEntity(entity);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// 将 BufferedHttpEntity 写到流中
bufferedHttpEntity.writeTo(byteArrayOutputStream);
// 将流转换成 byte[]
byte[] responseBytes = byteArrayOutputStream.toByteArray();
dataByte = responseBytes;
httpGet.abort(); //(终止)程序
}
return dataByte;
}
}