HttpClient 简介

  • HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
  • HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。

HttpClient 应用

创建项目

在pom.xml中添加HttpClient坐标

<project 

创建测试类httpClientTest发送 GET 请求不带参数

package 

测试结果:

发送 GET 请求带参数

/**

HttpClient发送post请求不带参数

创建项目

修改pom文件

<project 

添加web.xml

<?xml version="1.0" encoding="UTF-8"?>

springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>

编写controller

package 

httpClientDemo的测试类中添加doPostTest不带参数的方法

/**

测试:

启动postService项目的tomcat运行测试类

HttpClient发送post请求带参数

在controller中添加方法

@RequestMapping

httpClientDemo的测试类中添加doPostParamTest带参数的方法

/**

测试:

启动postService项目的tomcat运行测试类

注意:如果出现响应乱码的处理方法

在POST请求的参数中传递 JSON 格式数据

在controller中添加方法

@RequestMapping

在postService项目中添加Users实体类

httpClientDemo的测试类中添加POST请求传递 JSON 数据的方法

/**

HttpClient工具类

package 

测试:

/**

SOA 架构的HttpClient示例

实战案例

  • 1)采用 SOA 架构项目
  • 2) 使用 HttpClient 调用服务
  • 3) 完成用户的添加与查询

项目架构

表结构

CREATE 

创建项目

创建 commons 项目

修改 POM 文件

<project 

创建service项目

修改其pom.xml

<project 

整合框架目录

SqlMapperClient.xml

<?xml version="1.0" encoding="UTF-8"?>

db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root

applicationContext-dao.xml

<?xml version="1.0" encoding="UTF-8"?>

applicationContext-service.xml

<?xml version="1.0" encoding="UTF-8"?>

applicationContext-trans.xml

<?xml version="1.0" encoding="UTF-8"?>

springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>

web.xml

<?xml version="1.0" encoding="UTF-8"?>

  • 配置完成后启动tomcat无报错信息则说明项目框架搭建无误

创建client项目

修改pom.xml

<project 

整合框架目录

applicationContext-service.xml

<?xml version="1.0" encoding="UTF-8"?>

springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>

web.xml

<?xml version="1.0" encoding="UTF-8"?>

配置完成后启动tomcat无报错信息则说明项目框架搭建无误

业务实现

  • 在commons项目中加入实体类和工具类

Users

HttpClientUtil与前文中相同

JsonUtils

package 

service项目

mapper层添加接口和xml配置

service层添加接口和实现类

Controller层

UserController

package 

Client项目

添加jsp页面

主页面index.jsp

添加用户addUser.jsp

用户展示页面showUser.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>

controller层

PageController

UserController

package 

Service层接口和实现类

UserService

UserServiceImpl

package 

测试运行:

先后启动service项目和Client项目的tomcat

访问主页

点击查询用户

点击返回首页再点添加用户

输入用户姓名:Jerry和用户年龄:18点击OK

apache httpclient 工具类_HttpClient相关推荐

  1. apache httpclient 工具类_HttpClient 和Mycat 主从节点和读写分离

    第175次(HttpClient) 学习主题:HttpClient 学习目标: 1 掌握HttpClient自定义工具以及HttpClient具体的使用 对应视频: http://www.itbaiz ...

  2. apache httpclient 工具类_Httpclient实现文件上传、文件下载看这篇文章就够了

    前言: 使用httpclient实现文件的上传下载,废话补不多说,直接上概念上代码. 1.相关概念: 1 HTTP HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 ...

  3. apache httpclient 工具类_使用HttpClient进行服务的远程调用

    目标:使用apache公司的产品http httpcomponents 完成服务调用. HTTPClient调用服务 4:导入httpclient的依赖配置 org.apache.httpcompon ...

  4. apache httpclient 工具类_Java教程分享使用HttpClient抓取页面内容

    Java教程分享使用HttpClient抓取页面内容,使用HttpClient工具来发送Http请求 1.简介 HttpClient 是 Apache Jakarta Common 下的子项目,用来提 ...

  5. Java开发小技巧(五):HttpClient工具类

    前言 大多数Java应用程序都会通过HTTP协议来调用接口访问各种网络资源,JDK也提供了相应的HTTP工具包,但是使用起来不够方便灵活,所以我们可以利用Apache的HttpClient来封装一个具 ...

  6. 常用Apache Commons工具类备忘

    常用Apache Commons工具类 ----------------------------------------------------------------- 例如:commons.lan ...

  7. HttpClient工具类

    HttpClient工具类 package cn.sh.steven.httpclient;import com.alibaba.fastjson.JSON; import com.alibaba.f ...

  8. 使用单例模式实现自己的HttpClient工具类

    本文转载自:http://www.cnblogs.com/codingmyworld/archive/2011/08/17/2141706.html 使用单例模式实现自己的HttpClient工具类 ...

  9. 14、阿里云短信Demo演示、Http的Get请求和Post请求演示、httpClient工具类演示、发送短信模块搭建、搭建用户中心模块、完成user注册基本功能、验证码存入redis、短信验证码注册

    阿里云短信Demo演示 一.前端部分 无前端. 二.后端部分 1.创建发送短信测试模块SmsSendDemo,不用使用骨架. 2.在pom文件中引入依赖坐标 <dependency>< ...

最新文章

  1. 小程序加载本地图片路径问题
  2. java:BIO, NIO
  3. Intent对象详解(二)
  4. python实现redis三种cas事务操作
  5. .netcore mysql_.netcore基于mysql的codefirst
  6. 大数据,从青铜到王者
  7. 伪元素::selection -- CSS ::selection 伪元素,定义用户鼠标已选择内容的样式
  8. 车内看车头正不正技巧_交规理论最全技巧口诀,学会后100%过关!
  9. Unity3D中英文对照手册
  10. 实现百战铁路售票系统临时车次的添加功能
  11. 生成fnt字体工具BMFontTool工具
  12. wifi下adb连接电脑控制手机屏幕
  13. 计算机显卡怎么拨下来,电脑主机显卡怎么拆|电脑显卡的拆卸方法
  14. A3的PDF试卷怎么对半拆分成A4打印?
  15. 阿里巴巴直推关键技术手册收藏
  16. NRF 52832 ble_app_blinky 官方示例 part1
  17. 【Course 2 改善深度神经网络】Week 1 深度学习的实用层面
  18. ISCC-2019部分wp
  19. Qt深入浅出(十五)QTableView
  20. 官宣:CSDN发放福利!免费使用自定义域名功能一个月!

热门文章

  1. Python如何进行内存管理?
  2. matlab中boxplot函数的参数设置_matlab中boxplot字体大小设置
  3. java aes 工具类_Java AES加密算法工具类
  4. Uipath 学习栏目基础教学:13、Uipath调用python代码
  5. VTK:选定的顶点和边用法实战
  6. VTK:将点转换为字形用法实战
  7. OpenCASCADE:使用DRAW绘图
  8. boost::mpi模块从组创建的传播者的测试
  9. boost::mp11::construct_from_tuple相关用法的测试程序
  10. boost::foreach模块一些杂项的测试程序