1.不带session的请求
服务端
@RequestMapping("/test1")
@ResponseBody
public String test1() {
return "no land can see !";
}
客户端
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet getMethod = new HttpGet("http://localhost:8081/test1");
HttpResponse response;
try {
response = httpclient.execute(getMethod);
System.out.println(EntityUtils.toString(response.getEntity()));
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
结果
no land can see !
2.带session的http请求
服务端
@RequestMapping("/test2")
@ResponseBody
public String test2(HttpServletRequest request) {
if (request.getSession().getAttribute("name") == null)
return "no land no see !";
else
return "landed can see!";
}
客户端
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet getMethod = new HttpGet("http://localhost:8081/test2");
HttpResponse response;
try {
response = httpclient.execute(getMethod);
System.out.println(EntityUtils.toString(response.getEntity()));
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
结果
no land no see !
3.模拟登录
服务端
@RequestMapping("/land")
@ResponseBody
public String land(HttpServletRequest request) {
request.getSession().setAttribute("name", "knife");
return "land !";
}
客户端
CloseableHttpClient httpclient=HttpClients.createDefault();
HttpGet getMethod = new HttpGet("http://localhost:8081/land");
HttpResponse response;
try {
response = httpclient.execute(getMethod);
System.out.println(EntityUtils.toString(response.getEntity()));
Header[] headers= response.getAllHeaders();
String cookie=null;
for(Header header:headers){
if(header.getName().equals("Set-Cookie"))
cookie=header.getValue();
}
if(cookie!=null){
HttpGet getMethodWithCookie = new HttpGet("http://localhost:8081/test2");
getMethodWithCookie.addHeader("Cookie",cookie);
response=httpclient.execute(getMethodWithCookie);
System.out.println(EntityUtils.toString(response.getEntity()));
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
结果
land !
landed can see!
4.httpclient的pom文件
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>