当前位置: 首页 > news >正文

使用Apache http client发送json数据(demo)

POM依赖 :

        <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.12</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.46</version></dependency>

客户端代码:

package xyz.jangle.httpclient.test;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
//import org.json.JSONObject;import com.alibaba.fastjson.JSONObject;public class HttpClientSendJson {public static void main(String[] args) {try {// 创建HttpClient实例CloseableHttpClient httpClient = HttpClients.createDefault();// 创建HttpPost实例HttpPost httpPost = new HttpPost("http://127.0.0.1:8080/hello/test3");// 创建JSON数据JSONObject json = new JSONObject();
//            json.put("key1", "value1");
//            json.put("key2", "value2");json.put("shebeiId", "123");json.put("xiaoxiId", "456");json.put("xiaoxiType", "1");// 将JSON数据设置到StringEntity中StringEntity entity = new StringEntity(json.toString());// 设置内容类型entity.setContentType("application/json");// 设置HttpPost实例的实体httpPost.setEntity(entity);// 发送请求CloseableHttpResponse response = httpClient.execute(httpPost);// 获取响应内容String result = EntityUtils.toString(response.getEntity());// 输出结果System.out.println(result);// 关闭responseresponse.close();} catch (Exception e) {e.printStackTrace();}}
}

服务端接收方式:

    @RequestMapping(value = "/test3", method = RequestMethod.POST)@ResponseBodypublic Map<String, Object> test3(@RequestBody String test){Map<String,Object> map = new HashMap<String,Object>();//stringlogger.info("test:"+test);try {JSONObject jsonObject = JSONObject.parseObject(test);String shebeiId = jsonObject.getString("shebeiId");String xiaoxiId = jsonObject.getString("xiaoxiId");String xiaoxiType = jsonObject.getString("xiaoxiType");return xxx(shebeiId, xiaoxiId, map);} catch (Exception e) {map.put("code", 102);map.put("msg", e.toString());logger.error("异常:", e);return map;}}

参考文献:

1.百度AI

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 02:【stm32】工程模板的创建
  • 考研英语二--小作文如何写
  • 苹果iPhone 16 Pro系列有望支持Wi-Fi 7,再也不说苹果信号不好了
  • Python | Leetcode Python题解之第315题计算右侧小于当前元素的个数
  • 08.02_111期_Linux_NAT技术
  • Binder、 AIDL 、IPC 大展神威
  • linux进程控制——进程等待——wait、waitpid
  • uniapp自定义网格布局用于选择金额、输入框焦点事件以及点击逻辑实战
  • 【面试题】C++:面向对象的三大特性?
  • Cocos Creator文档学习记录
  • Java二十三种设计模式-外观模式(9/23)
  • 示例:在ML.NET中应用Model Builder模型生成器构建图片分类模型
  • 定位Oracle表空间问题
  • 基于若依框架开发的Spring Boot+Vue的MES(生产制造执行系统)是一种专为中小型工厂设计的ERP(企业资源计划)系统
  • Nerd Fonts
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 11111111
  • export和import的用法总结
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Koa2 之文件上传下载
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • LeetCode算法系列_0891_子序列宽度之和
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Service Worker
  • 分布式任务队列Celery
  • 使用 QuickBI 搭建酷炫可视化分析
  • 提醒我喝水chrome插件开发指南
  • 听说你叫Java(二)–Servlet请求
  • 一道闭包题引发的思考
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​第20课 在Android Native开发中加入新的C++类
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • #laravel 通过手动安装依赖PHPExcel#
  • #NOIP 2014# day.2 T2 寻找道路
  • #Z2294. 打印树的直径
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $.proxy和$.extend
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (南京观海微电子)——I3C协议介绍
  • (四)汇编语言——简单程序
  • (算法)区间调度问题
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • ****Linux下Mysql的安装和配置
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net core 6 redis操作类