封装的工具类,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; } }