import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* @Description:httpclient工具类
* @author: han
* @date: 2018/7/11
* @Version: 1.0
*/
public class HttpUtil {
/**
* post请求
*
* @param url 地址
* @param map 参数集合
* @param charset 参数编码
* @return
*/
public static String doPost(String url, Map<String, String> map, String charset) {
CloseableHttpClient httpClient = null;
HttpPost httpPost = null;
String result = "";
CloseableHttpResponse response = null;
try {
httpClient = HttpClients.createDefault();
httpPost = new HttpPost(url);
//设置参数
List<NameValuePair> list = new ArrayList<NameValuePair>();
Iterator iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> elem = (Map.Entry<String, String>) iterator.next();
list.add(new BasicNameValuePair(elem.getKey(), elem.getValue()));
}
if (list.size() > 0) {
//String charset = HTTP.UTF_8;
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, charset);
httpPost.setEntity(entity);
}
response = httpClient.execute(httpPost);
int code = response.getStatusLine().getStatusCode();
if (200 == code) {
if (response != null) {
HttpEntity entity = response.getEntity();
if (entity != null) {
//第一种方式
result = EntityUtils.toString(entity, charset);
//第二种方式(推荐)
/*InputStream inputStream = entity.getContent();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line= null;
while ((line = bufferedReader.readLine()) != null) {
result += line;
}*/
}
}
} else {
return "请求错误,状态码为" + code;
}
} catch (Exception ex) {
ex.printStackTrace();
return "请求错误";
}
return result;
}
/**
* get请求
*
* @param url 地址
* @param charset 参数编码
* @return
*/
public static String doGet(String url, String charset) {
CloseableHttpClient httpClient = null;
HttpGet httpGet = null;
String result = "";
CloseableHttpResponse response = null;
try {
httpClient = HttpClients.createDefault();
httpGet = new HttpGet(url);
response = httpClient.execute(httpGet);
int code = response.getStatusLine().getStatusCode();
if (200 == code) {
if (response != null) {
HttpEntity entity = response.getEntity();
if (entity != null) {
//第一种方式
result = EntityUtils.toString(entity, charset);
//第二种方式(推荐)
/*InputStream inputStream = entity.getContent();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line= null;
while ((line = bufferedReader.readLine()) != null) {
result += line;
}*/
}
}
} else {
return "请求错误,状态码为" + code;
}
} catch (Exception ex) {
ex.printStackTrace();
return "请求错误";
}
return result;
}
public static void main(String[] args) {
String url = "http://www.baidu.com";
String charset = "UTF-8";
String result = doGet(url, charset);
System.out.println(result);
}
}
httpclient工具类
最新推荐文章于 2023-11-17 00:15:00 发布