大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
关于HttpEntity的用法
HttpEntity表示http的request和resposne实体,它由消息头和消息体组成。
从HttpEntity中可以获取http请求头和回应头,也可以获取http请求体和回应体信息。
HttpEntity的使用,与@RequestBody 、@ResponseBody类似。
HttpEntity的典型应用是配合RestTemplate,在微服务项目中的应用(参见API示例)
用户登录示例:
步骤一:在login.jsp发送ajax请求,发送之前添加请求头信息
$.ajax({
type: "POST",
url: targetUrl,
data: user,//传递的参数
dataType:"json",//前端可以接收服务器传过来的数据的类型,json
contentType: "application/json",
beforeSend: function(xhr){//请求发送之前执行函数,添加请求头
xhr.setRequestHeader("token","shfashfdasfhdashfoasf");
},
success: function(user){
alert(user.username);
},
error:function(){
alert("异常,请检查");
}
步骤二:action中提取RequestEntity中的请求头信息,并用ResponseEntity回应
@PostMapping(value = "/login")
@ResponseBody//返回的结果是响应体,返回的类型String,字符串中有中文,乱码了
public ResponseEntity<User> login(@RequestBody String userString, RequestEntity requestEntity) {
System.out.println(requestEntity.getUrl());
//通过请求实体对象获取请求头
HttpHeaders requestHeaders = requestEntity.getHeaders();
System.out.println(requestHeaders);
System.out.println(requestHeaders.getContentLength());//内容的长度
System.out.println(requestHeaders.getContentType());
System.out.println(requestHeaders.getAccept());
System.out.println(requestHeaders.getOrigin());
System.out.println(requestHeaders.getFirst("token"));
//创建一个响应头
HttpHeaders responseHeader = new HttpHeaders();
responseHeader.set("myResponseHeader","myValue");
//userString绑定的请求体
//登录成功,拿到一个user对象
User user = new User();
user.setUsername(userString.split("&")[0].split("=")[1]);
user.setPassword(userString.split("&")[1].split("=")[1]);
user.setId(1000001);
user.setHead_img("/images/head.jpg");
user.setBalance(1000);
//现在返回登录的结果,json格式的字符串
//user:响应体,responseHeader:响应头,本身就有默认的响应头,在这里是添加其他的响应头的信息
//HttpStatus:响应的状态码
return new ResponseEntity<User>(user, responseHeader, HttpStatus.OK);
}
执行结果:
响应的状态码
添加的
请求头信息
请求体
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/203453.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...