HttpClient 4.5.2例子
来源:互联网 发布:java获取系统时间 编辑:程序博客网 时间:2024/06/04 18:39
1:工具类
package com.app.util;import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.apache.http.HttpEntity;import org.apache.http.HttpStatus;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.entity.EntityBuilder;import org.apache.http.client.methods.CloseableHttpResponse;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;public class HttpClientUtil { //链接超时时间 private static int connectTimeout = 5000; //读取超时时间 如果访问一个接口,多少时间内无法返回数据,就直接放弃此次调用 private static int socketTimeout = 3000; //设置从connect Manager获取Connection 超时时间 private static int connectionRequestTimeout = 2000; /** * http POST发送方式 * @param url * @param params * @return */ public static String httpPost(String url,Map<String, Object> params){ String result = null; CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(url); RequestConfig requestConfig = setRequestConfig(); httpPost.setConfig(requestConfig); List<NameValuePair> list = getNameValuePair(params); //将参数拼装到http链接中 EntityBuilder entityBuilder = EntityBuilder.create(); entityBuilder.setParameters(list); httpPost.setEntity(entityBuilder.build()); CloseableHttpResponse response = null; HttpEntity entity = null; try { response = httpClient.execute(httpPost); entity = response.getEntity(); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { result = EntityUtils.toString(entity, "UTF-8");//将httpEntity转为字符窜 } EntityUtils.consume(entity);// 清除返回的httpEntity } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (response != null) { response.close(); } if (httpClient != null) { httpClient.close(); } } catch (IOException e) { } } return result; } /** * 设置链接时间参数 * @return */ public static RequestConfig setRequestConfig(){ RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(connectTimeout). setSocketTimeout(socketTimeout).setConnectionRequestTimeout(connectionRequestTimeout).build(); return requestConfig; } /** * 拼装HTTPClient所需参数 * @param params * @return */ public static List<NameValuePair> getNameValuePair(Map<String, Object> params){ List<NameValuePair> list = new ArrayList<NameValuePair>(params.size()); for(Map.Entry<String, Object> entry : params.entrySet()){ NameValuePair nameValuePair = new BasicNameValuePair(entry.getKey(), String.valueOf(entry.getValue())); list.add(nameValuePair); } return list; }}
2:测试类
package com.app.util;import java.util.HashMap;import java.util.Map;import java.util.Map.Entry;import com.base.util.JackSonSerializeUtil;public class Test { public static void main(String[] args) { String url="http://localhost:8080/app/app/system/login"; Map<String, Object> params = new HashMap<String, Object>(); params.put("loginName", "admin"); params.put("password", "111111"); String result = HttpClientUtil.httpPost(url, params); Map<String, String> map = (Map<String, String>) JackSonSerializeUtil.JsonToObject(result, Map.class); for (Entry<String, String> m: map.entrySet()) { } System.out.println(result+" result"); }}
3:调用的方法
@HandleMethodLog("用户登录") @RequestMapping(value="/login",method=RequestMethod.POST) @ResponseBody public String login(HttpServletRequest request,HttpServletResponse response) throws Exception{ logger.debug("登录:login"); CommonAjax<SysUser> ajax = new CommonAjax<SysUser>(); SysUser user = sysUserService.getSysUser(new RequestToMap().getRequestToMap(request)); if(user!=null){ request.getSession().setAttribute(CommonConstant.SESSION_USER, user); user.setLastLoginTime(CommonUtil.getNowDate()); sysUserService.updateUserByEntity(user); ajax.setState(CommonUtil.SUCCESS); ajax.setObject(user); ajax.setContent("登录成功"); }else{ ajax.setState(CommonUtil.NOTPASSERROR); ajax.setContent("登录失败"); } return JackSonSerializeUtil.ObjectToJson(ajax); }
0 0
- HttpClient 4.5.2例子
- httpclient 例子
- httpClient例子
- httpClient例子
- HttpClient例子
- HttpClient例子
- httpclient【简单例子】
- HttpClient的例子
- HTTPClient应用例子
- HttpClient应用例子
- HttpClient的相关例子
- HttpClient使用简单例子
- HttpClient使用例子
- apache httpclient 使用例子
- httpclient测试例子
- HttpClient模拟登陆例子
- HttpClient调用例子
- httpClient简单例子
- Ionic 启动流程
- mongodb 的副本集相关整理
- 工作日记:2017年1月4日17:29:25
- JAVA SE API学习 java.io.File
- android中关于toolbar的使用
- HttpClient 4.5.2例子
- 如何自定义跳转页面
- JavaSE_2th_标识符、关键字、基本数据类型、类型转换、变量和常量
- EF进阶篇(二)——CRUD
- Python 编码小结
- java数据库连接池
- SQL的四种连接-左外连接、右外连接、内连接、全连接
- 字符串
- Struts2 拦截器Interceptor实现防止恶意登录(登录限制)