先建立2个项目,分别是请求端和响应端,端口改成不一样的就行,比如请求端是8080,响应端是8081

废话不多说,直接上代码

请求端的Controller层

@GetMapping("/request")
public String hi() {
HttpClient httpClient = HttpClients.createDefault();
String url="http://127.0.0.1:8081/response";
String result=null;
HttpPost httpPost = new HttpPost(url);
httpPost.addHeader("Content-type", "application/json;charset=utf-8");
httpPost.setHeader("Accept", "application/json");
JSONObject jsonObject = new JSONObject();
jsonObject.put("request", "hi, i am request!");
httpPost.setEntity(new StringEntity(jsonObject.toJSONString(), "UTF-8")); try {
HttpResponse response = httpClient.execute(httpPost);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
result = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
} else {
result = String.valueOf(response.getStatusLine().getStatusCode());
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}

响应端的Controller层

@PostMapping("/response")
public String response(HttpServletRequest request) throws IOException {
request.setCharacterEncoding("UTF-8");
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
String temp= null;
StringBuilder result = new StringBuilder();
try {
while ((temp = reader.readLine()) != null) {
result.append(temp);
}
} catch (IOException e) {
e.printStackTrace();
}
reader.close();
@SuppressWarnings("unchecked")
Map<String,String> map = (Map<String,String>)JSON.parse(result.toString());
return "Hi, request,I am response, this message is from you: "+map.get("request");
}

在浏览器输入 localhost:8080/request,然后请求端请求http通信去访问响应端,响应端得到消息后,返回结果,然后请求端得到结果后显示出来

结果:Hi, request,I am response, this message is from you: hi, i am request!

完~

最新文章

  1. date命令总结
  2. OpenGL ES无法获取贴图数据原因
  3. 深入理解JS异步编程(一)
  4. std::map 自定义排序
  5. 【练习】如何显示本地主机上的MySQL客户机版本
  6. MySQL 使用方法简单教程
  7. C++:文件的输入和输出
  8. Asp.Net MVC Filter权限过滤使用说明
  9. C#中串口与Modem的通信
  10. 用nrm一键切换npm源
  11. 邓_phpcms_二次开发_创建插件
  12. JavaEEspring整理
  13. [WC2018]通道
  14. intptr_t 指针(转)
  15. k8s-YAML配置文件(转)
  16. regular.js
  17. sublime text3:sublime text3本地服务器方式运行文件
  18. Windows Service 之 Bug 记录
  19. 线性表之顺序表C++实现
  20. 三年半Java后端面试经历

热门文章

  1. mysql数据库第三弹
  2. 判断pdf、word文档、图片等文件类型(格式)、大小的简便方法
  3. idea for Mac 代码提示设置
  4. Java 读取 .properties 配置文件的几种方式
  5. .Net Core 2.0 EntityFrameworkCore CodeFirst入门教程
  6. 【原创】通过搬瓦工vps搭建SS环境,供学习用
  7. javaScript基础概念小知识点集
  8. 简单模板view调用
  9. mvc约定
  10. URL, URI, URN三者区别