HttpClient使用详解
2016-07-17 00:00
441 查看
HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性,它不仅使客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入。
1、服务端
2、客户端httpClient请求
1、服务端
@RequestMapping(value="/getUserDatasJson",produces="text/plain;charset=UTF-8") public void findDatas(String accountName,HttpServletRequest request,HttpServletResponse response) { // 0非管理员,1管理员 String isAdminUser = userFunctionService.getIsAdminUser(accountName); List<DimensionData> userDatas = null; if("0".equals(isAdminUser)){ userDatas = dataPrivilegeService.findUserDatas(accountName); } else if("1".equals(isAdminUser)){ userDatas = dataPrivilegeService.findAdminUserDatas(accountName); } StringBuffer jsonStr = new StringBuffer(); int size = userDatas != null ? userDatas.size() : 0; // 拼接json格式 jsonStr.append("{"); jsonStr.append("\""+accountName+"\":["); for(int i = 0; i < size; i++){ String dimensionType = userDatas.get(i).getDimensionType(); String dimensionValue = userDatas.get(i).getDimensionValue(); String id = userDatas.get(i).getId(); jsonStr.append("{"); jsonStr.append("\"dimensionType\":\""+dimensionType+"\","); jsonStr.append("\"id\":\""+id+"\","); jsonStr.append("\"dimensionValue\":\""+dimensionValue+"\""); jsonStr.append("}"); if(i != size - 1){ jsonStr.append(","); } } jsonStr.append(" ]}"); try { response.getWriter().write(jsonStr.toString()); } catch (IOException e) { e.printStackTrace(); } }
2、客户端httpClient请求
String url = "http://127.0.0.1:8081/sso/dataPrivilegeController/getUserDatasJson?accountName=zhangsan"; HttpClient httpClient = HttpClients.createDefault();//new DefaultHttpClient(); // 创建httpget HttpGet httpGet = new HttpGet(url); String jsonResult = ""; HttpResponse httpResponse = null; try { // 执行get请求. httpResponse = httpClient.execute(httpGet); // 获取响应实体 HttpEntity entity = httpResponse.getEntity(); // 响应内容 byte[]bytes = EntityUtils.toByteArray(entity); jsonResult = new String(bytes,"utf-8"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(jsonResult); }
相关文章推荐
- 局域网常用的几种网络拓扑结构及其特点。
- RxJava 与OKHttpClient实现登陆
- Tensorflow让神经网络自动创造音乐
- TCP、UDP协议,java网络通信基础
- http://fxz.51kdn.cn/post-139.html
- 自定义光标
- androidstudio解决Internal error please report to https://code.google.com/p/android/issues
- 【Linux系列】Ubuntu网络基本配置
- java网络编程(上)
- TCP粘包问题及应用层解决方法
- 通过HttpURLConnection获取网络图片实例
- 计算机网络学习
- IP地址、子网掩码、网络号、主机号、网络地址、主机地址
- HttpModule实现URL重写
- ICML2016最佳论文《深度强化学习的竞争网络架构》
- Android 网络问题 - IP FORWARD
- TCP为什么要三次握手而结束要四次
- MFC使用Unicode字符集在网络编程接收数据乱码或不完整的解决办法
- 【闲的蛋疼】深圳联通4G网络下,测试对比本地、香港、Los Angeles、San Francisco的连接速度
- unix网络编程卷1:套接字联网 源码编译