商城项目实战29:Httpclient封装的Http工具
来源:互联网 发布:c# 自动抓取网页数据 编辑:程序博客网 时间:2024/05/17 05:14
import java.io.IOException;import java.net.URI;import java.util.ArrayList;import java.util.List;import java.util.Map;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.client.utils.URIBuilder;import org.apache.http.entity.ContentType;import org.apache.http.entity.StringEntity;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;public class HttpClientUtil {public static String doGet(String url, Map<String, String> param) {// 创建Httpclient对象CloseableHttpClient httpclient = HttpClients.createDefault();String resultString = "";CloseableHttpResponse response = null;try {// 创建uriURIBuilder builder = new URIBuilder(url);if (param != null) {for (String key : param.keySet()) {builder.addParameter(key, param.get(key));}}URI uri = builder.build();// 创建http GET请求HttpGet httpGet = new HttpGet(uri);// 执行请求response = httpclient.execute(httpGet);// 判断返回状态是否为200if (response.getStatusLine().getStatusCode() == 200) {resultString = EntityUtils.toString(response.getEntity(), "UTF-8");}} catch (Exception e) {e.printStackTrace();} finally {try {if (response != null) {response.close();}httpclient.close();} catch (IOException e) {e.printStackTrace();}}return resultString;}public static String doGet(String url) {return doGet(url, null);}public static String doPost(String url, Map<String, String> param) {// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String resultString = "";try {// 创建Http Post请求HttpPost httpPost = new HttpPost(url);// 创建参数列表if (param != null) {List<NameValuePair> paramList = new ArrayList<>();for (String key : param.keySet()) {paramList.add(new BasicNameValuePair(key, param.get(key)));}// 模拟表单UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);httpPost.setEntity(entity);}// 执行http请求response = httpClient.execute(httpPost);resultString = EntityUtils.toString(response.getEntity(), "utf-8");} catch (Exception e) {e.printStackTrace();} finally {try {response.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return resultString;}public static String doPost(String url) {return doPost(url, null);}public static String doPostJson(String url, String json) {// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String resultString = "";try {// 创建Http Post请求HttpPost httpPost = new HttpPost(url);// 创建请求内容StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);httpPost.setEntity(entity);// 执行http请求response = httpClient.execute(httpPost);resultString = EntityUtils.toString(response.getEntity(), "utf-8");} catch (Exception e) {e.printStackTrace();} finally {try {response.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return resultString;}}
阅读全文
0 0
- 商城项目实战29:Httpclient封装的Http工具
- 商城项目实战 | 9.1 Adapter 封装的全面解析
- 封装的HttpClient工具类
- React Native商城项目实战04 - 封装TabNavigator.Item的创建
- 商城项目实战 | 6.2 OkHttp 轻松封装 更加灵活的调用
- Apache 大三方法HTTP请求链接响应之HttpClient的GET和POST工具类封装
- 商城项目实战
- HttpClient工具类封装
- httpclient封装工具类
- 轻松把玩HttpClient之封装HttpClient工具类(八),优化启用Http连接池策略
- 商城项目实战34:单点登录系统SSO最小实现的接口文档及Cookie工具类
- 实战项目商城(第一天)
- 实战项目商城(第二天)
- 实战项目商城(第三天)
- 实战项目商城(第四天)
- 实战项目商城(第五天)
- 实战项目商城(第六天)
- 实战项目商城(第七天)
- MYSQL必知必会1-8读书笔记
- 修改linux文件权限命令:chmod
- es6解构赋值(二)
- Java集合类详解
- Wget用法、参数解释的比较好的一个文章
- 商城项目实战29:Httpclient封装的Http工具
- android的车牌识别系统EasyPR
- Spring Security(06)——AuthenticationProvider
- Android 7.0下载Apk后自动安装
- MySQL之日期时间处理函数
- 商城项目实战30:服务层加入Redis缓存
- PL/SQL 循环
- [ES6语法1]let和const
- ArcGIS 测距 添加相邻点之间的距离