HttPClient简介
在JDK中java.net包下提供了用户HTTP访问的基本功能,但是它缺少灵活性或许多应用所需要的功能。
HttpClient起初是Apache Jakarta Common 的子项目。用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本。2007年成为顶级项目。
通俗解释:HttpClient可以实现使用Java代码完成标准HTTP请求及响应。
代码实现
整体代码架构
- server端是服务端提供远程调用方法
- client是客户端,访问远程方法
- pojo放通用的实体类
Pojo(实体类)
代码结构
user类
package com.shen.pojo;
import java.io.Serializable;
import java.util.Objects;
public class User implements Serializable {
private String username;
private String password;
public User(){
}
public User(String username,String password){
this.username = username;
this.password = password;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof User)) return false;
User user = (User) o;
return getUsername().equals(user.getUsername()) && getPassword().equals(user.getPassword());
}
@Override
public int hashCode() {
return Objects.hash(getUsername(), getPassword());
}
@Override
public String toString() {
return "{" +
"\"username\":\"" + username + '\"' +
", \"password\":\"" + password + '\"' +
'}';
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
server端(服务端)
代码结构
server端没有修改端口号,使用默认8080端口提供服务
控制器TestController
package com.example.server.controller;
import com.shen.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
public class TestController {
/**
* CrossOrigin跨域请求注解,在响应头上增加跨域处理允许,可以让ajax跨域请求当前的服务方法
* 如果用于注解类型,必须是控制器,代表当前控制器中所以方法,都允许跨域访问
* @param users
* @return
*/
//使用请求体传递参数
@RequestMapping