概述
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.6</version>
</dependency>
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
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 org.springframework.util.CollectionUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class HttpUtil {
private static final String UTF8 = "UTF-8";
public String doGet(String url) throws Exception {
CloseableHttpResponse response = null;
try {
// 获取http客户端
CloseableHttpClient client = HttpClients.createDefault();
// 通过httpget方式来实现我们的get请求
HttpGet httpGet = new HttpGet(url);
// 通过client调用execute方法,得到我们的执行结果就是一个response,所有的数据都封装在response里面了
response = client.execute(httpGet);
// HttpEntity
// 是一个中间的桥梁,在httpClient里面,是连接我们的请求与响应的一个中间桥梁,所有的请求参数都是通过HttpEntity携带过去的
// 所有的响应的数据,也全部都是封装在HttpEntity里面
HttpEntity entity = response.getEntity();
// 通过EntityUtils 来将我们的数据转换成字符串
return EntityUtils.toString(entity, UTF8);
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (null != response){
// 关闭
response.close();
}
}
}
public String doPost(String url, Map<String, String> params) throws Exception {
CloseableHttpResponse response = null;
try {
// 获取默认的请求客户端
CloseableHttpClient client = HttpClients.createDefault();
// 通过HttpPost来发送post请求
HttpPost httpPost = new HttpPost(url);
/*
* post带参数开始
*/
// 第三步:构造list集合,往里面丢数据
List<NameValuePair> list = new ArrayList<NameValuePair>();
if (!CollectionUtils.isEmpty(params)){
for (Map.Entry<String, String> param : params.entrySet()){
BasicNameValuePair basicNameValuePair = new BasicNameValuePair(param.getKey(), param.getValue());
list.add(basicNameValuePair);
}
}
// 第二步:我们发现Entity是一个接口,所以只能找实现类,发现实现类又需要一个集合,集合的泛型是NameValuePair类型
UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(list);
// 第一步:通过setEntity 将我们的entity对象传递过去
httpPost.setEntity(formEntity);
/*
* post带参数结束
*/
// HttpEntity
// 是一个中间的桥梁,在httpClient里面,是连接我们的请求与响应的一个中间桥梁,所有的请求参数都是通过HttpEntity携带过去的
// 通过client来执行请求,获取一个响应结果
response = client.execute(httpPost);
HttpEntity entity = response.getEntity();
return EntityUtils.toString(entity, UTF8);
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (null != response){
// 关闭
response.close();
}
}
}
}
最后
以上就是眯眯眼蜜粉为你收集整理的httpclent demo的全部内容,希望文章能够帮你解决httpclent demo所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复