项目中有时候需要用到HttpClient 这里整理收集
// 如果关注性能问题可以考虑使用HttpClientConnectionManager
public static String doPost(Map<String, String> params,String httpUrl) throws ClientProtocolException, IOException{String result = null;
HttpPost httpPost = new HttpPost(httpUrl);
CloseableHttpClient httpclient = HttpClients.createDefault();
if (params != null)
{
UrlEncodedFormEntity formEntiry = HttpClientHandler.buildUrlEncodedFormEntity(params);
httpPost.setEntity(formEntiry);
CloseableHttpResponse response = httpclient.execute(httpPost);
try
{
HttpEntity entity = response.getEntity();
if (response.getStatusLine().getReasonPhrase().equals("OK") && response.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
result = EntityUtils.toString(entity, "UTF-8");
EntityUtils.consume(entity);
} finally
{
response.close();
}
}
return result;
}
/**
* MAP类型数组转换成NameValuePair类型
*
*/
public static List<NameValuePair> buildNameValuePair(Map<String, String> params) {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
if (params != null) {
for (Map.Entry<String, String> entry : params.entrySet()) {
nvps.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
}
}
return nvps;
}
/**
* MAP类型数组转换成buildUrlEncodedFormEntity类型
* @throws UnsupportedEncodingException
*
*/
public static UrlEncodedFormEntity buildUrlEncodedFormEntity(Map<String, String> params) throws UnsupportedEncodingException {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
if (params != null) {
for (Map.Entry<String, String> entry : params.entrySet()) {
nvps.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
}
}
UrlEncodedFormEntity formEntity = null;
formEntity = new UrlEncodedFormEntity(nvps,"UTF-8");
return formEntity;
}
public static String getBase64Encode(String str) {
if (str == null || "".equals(str)) {
return "";
}
try {
byte[] bt = str.getBytes("UTF-8");
str = String.valueOf(Base64.encode(bt));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return str;
}
public static String getBase64Decode(String str) {
if (str == null || "".equals(str)) {
return "";
}
char[] ch = str.toCharArray();
byte[] bt = Base64.decode(ch);
try {
str = new String(bt,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return str;
}