get通过发送Body传参-工具类

news2024/11/28 12:33:52

1、调用方式


String url ="http://ip/xxx/zh/xxxxx/xxxx/userCode";
//进行url中的对应的参数
url2 =url2.replace("ip",bancirili);
url2 =url2.replace("zh",zh);
url2 = url2.replace("userCode",userCode);

String dateTime = xxxx;
//组装请求体
String requestBody = "{\"urlParams\":\"?$dateTime=" + dateTime + "\"}";
//get-发送带body的请求
Map<String, String> stringStringMap = HttpClientUtils.httpGet(url, requestBody);

//获取请求到的数据,当前为json
String body = stringStringMap.get("body");

//使用Gson将响应数据转换为实体对象
Gson gson = new Gson();
//MqShiftResponse为JSON结构,
//例如 code,msg,List<MqShift>,此处从MqShiftResponse 解析出MqShift存至List
MqShiftResponse responseData = gson.fromJson(body,MqShiftResponse.class);
List<MqShift> shiftList = responseData.getData();

有公司自己的工具类(json转为实体)解析也可以

2、工具类(get发送Body传参-工具类)

public static Map<String, String> httpGet(String url, String requestBody) {
        RequestConfig requestConfig = RequestConfig.custom()
                .setConnectTimeout(5000) // 设置连接超时时间为5秒
                .setSocketTimeout(5000) // 设置请求超时时间为5秒
                .build();

        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpPost httpPost = new HttpPost(url);
        httpPost.setConfig(requestConfig);

        httpPost.setEntity(new StringEntity(requestBody, ContentType.APPLICATION_JSON));

        Map<String, String> resultMap = new HashMap<>();
        try {
            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();

            String body = null;
            int status = 400;

            status = httpResponse.getStatusLine().getStatusCode();
            if (null != httpEntity) {
                body = EntityUtils.toString(httpEntity);
            }

            resultMap.put("status", String.valueOf(status));
            resultMap.put("body", body);

        } catch (ClientProtocolException e) {
            e.printStackTrace();
            log.error("发送请求失败", e);
            throw new RuntimeException("发送请求失败", e);
        } catch (IOException e) {
            e.printStackTrace();
            log.error("IO异常", e);
            throw new RuntimeException("IO异常", e);
        } finally {
            try {
                //关闭流,释放资源
                if (httpClient != null) {
                    httpClient.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return resultMap;
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1432688.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

共享网盘系统PHP源码

新V5.0版本&#xff0c;支持上传视频、支持视频播放、支持共享&#xff0c;也可以自己用。 可以自动生成视频外链&#xff0c;下载地址&#xff0c;播放器代码&#xff0c;html代码&#xff0c;ubb代码等等。 使用方法&#xff1a; 源码上传到服务器&#xff0c;打开网站根据…

vscode debug无法直接查看eigen变量的问题(解决方法)

主要是给gdb添加一个Eigen相关的printer即可, 网上其他教程都搞太复杂了, 我整理成了一个仓库, 把仓库克隆下来直接运行 ./setup.sh脚本即可配置好 git clone gitgithub.com:fandesfyf/EigenGdb.git cd EigenGdb ./setup.sh 然后在vscode中重新debug即可。 效果 …

使用yolov5时需要安装的requirements.txt

之前需要配置好pytorch&#xff0c;同时注意的是pytoorch版本需要在1.7以上 1.github下载好requirements.txt 文件内容如下&#xff1a; 2.在cmd命令行转移到yolov5所在文件夹及配置的yolo环境中&#xff0c;直接下载 pip install -r requirements.txt -i http://pypi.doub…

一文讲透ast.literal_eval() eval() json.loads()

文章目录 一文讲透ast.literal_eval() eval() json.loads()1. ast.literal_eval()2. eval()3. json.loads()4. 总结 一文讲透ast.literal_eval() eval() json.loads() 在Python库中&#xff0c;我们经常会遇到需要将字符串转换为相应对象或数据结构的情况。在这种情况下&#…

TCP与UDP:传输层协议的差异与选择

在计算机网络中&#xff0c;传输控制协议&#xff08;TCP&#xff09;和用户数据报协议&#xff08;UDP&#xff09;是两种常用的传输层协议。然而&#xff0c;随着互联网的快速发展&#xff0c;传统的TCP和UDP在某些场景下存在一些限制。为了解决这些问题&#xff0c;出现了新…

蓝桥杯Web应用开发-display属性

display 属性 专栏持续更新中 display 属性可以用来设置元素在页面上的排列方式&#xff0c;也可用来隐藏元素。 display 属性值的说明如下表所示。 属性值说明block元素以块级方式展示。inline元素以内联方式展示。inline-block元素以内联块的方式展示。none隐藏元素。 b…

Vue3.0(二):Vue组件化基础 - 脚手架

Vue组件化基础 - 脚手架 Vue的组件化 我们在处理一些任务量比较庞大的工作时候&#xff0c;会将工作内容进行拆分&#xff0c;分步骤完成 而组件化的思想正式如此&#xff0c;对于一个庞大的项目&#xff0c;我们可以将其拆分成一个个的小功能&#xff0c;分步骤进行实现 组…

Axure RP9原型设计工具使用记录:基础操作

Axure RP9使用记录一 &#x1f4da;第一章 前言&#x1f4d7;背景&#x1f4d7;目的 &#x1f4da;第二章 基础介绍及操作&#x1f4d7;页面功能总览&#x1f4d7;基础操作&#x1f4d5;设置样式&#x1f4d5;设置交互&#x1f4d5;设置组合&#x1f4d5;设置动态面板&#x1f…

在线JSON转SQL工具

在线JSON转SQL - BTool在线工具软件&#xff0c;为开发者提供方便。在线JSON转SQL工具可以将JSON文件中的数据或者JSON对象转换为SQL插入语句&#xff0c;方便用户将数据导入到数据库中。用户可以通过简单的界面上传JSON文件&#xff0c;或者文本框输入&#xff0c;点击JSON转S…

云服务器也能挂游戏 安卓模拟器

安卓模拟器云服务器 什么是BlueStacks模拟器主机&#xff1f; 特网科技基于Windows操作系统预装了BlueStacks Android模拟器您能够通过Android模拟器安装Android应用程序、如APP游戏、安卓APP、APP游戏等。 我可以在主机上安装应用程序吗&#xff1f; 你可以在BlueStacks模…

适合大型企业的云计算服务器有哪些?

随着云计算技术的不断发展&#xff0c;越来越多的企业开始采用云计算服务来降低成本、提高效率。对于大型企业而言&#xff0c;选择适合的云计算服务器非常重要&#xff0c;因为它将直接影响企业的业务运营和数据安全。本文将介绍适合大型企业的云计算服务器类型&#xff0c;以…

使用Pycharm安装Python的库

1.点击文件-----设置&#xff08;setting&#xff09; 2.找到Python解释器&#xff0c;点击加号 3.搜索你需要的库&#xff0c;安装

介绍一个关于 JSON 可视化的网站

最近在看到一个比较好玩的网站&#xff0c;可以将 JSON以可视化的方式展现出现&#xff0c;比如存在一下JSON数据&#xff1a; {"id": "f3bbc3bc-9f34-4bf7-8a0f-7e6f6e6fbb9a","isActive": false,"age": 25,"name": "…

Docker进阶篇-轻量级可视化工具Portainer

一、简介 Portainer是一款轻量级的应用&#xff0c;它提供了图形化界面&#xff0c;用于方便地管理Docker环境&#xff0c;包括单机环 境和集群环境。 Portainer分为开源社区版&#xff08;CE版&#xff09;和商用版&#xff08;BE版/EE版&#xff09;。 官网&#xff1a;P…

1802907-91-0,Methyltetrazine-PEG4-COOH,可以与多种不同的化学基团反应

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;Methyltetrazine-PEG4-COOH&#xff0c;Methyltetrazine-PEG4-acid&#xff0c;甲基四嗪-四聚乙二醇-羧基&#xff0c;甲基四嗪-四聚乙二醇-羧酸&#xff0c;甲基四嗪PEG4羧酸&#xff0c;甲基四嗪-PEG4-羧酸 一、基…

LLMs之Llama2 70B:《Self-Rewarding Language Models自我奖励语言模型》翻译与解读

LLMs之Llama2 70B&#xff1a;《Self-Rewarding Language Models自我奖励语言模型》翻译与解读 目录 《Self-Rewarding Language Models》翻译与解读 Abstract 5 Conclusion结论 6 Limitations限制 《Self-Rewarding Language Models》翻译与解读 地址 文章地址&#xff1…

PyTorch 2.2 中文官方教程(八)

训练一个玛丽奥玩游戏的 RL 代理 原文&#xff1a;pytorch.org/tutorials/intermediate/mario_rl_tutorial.html 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 注意 点击这里下载完整的示例代码 作者&#xff1a; 冯元松, Suraj Subramanian, 王浩, 郭宇章。 这个…

jmeter设置定时器

前言 本文主要分享两种定时器&#xff08;同步定时器、固定定时器&#xff09;的用法&#xff0c;从作用&#xff0c;设置方法以及实例演示几个方面讲解&#xff0c;结尾还有小知识哦&#xff01;一起开始学习吧&#xff01; 一、同步定时器&#xff08;集合点&#xff09; …

Educational Codeforces Round 87 (Rated for Div. 2)D.Multiset 卡内存的修改数组

Problem - 1354D - Codeforces 我被卡了&#xff1a; 这道题看到multiset我还真写multiset&#xff0c;结果内存超限。 当然能想到想同的数存到一块&#xff0c;所以用了map&#xff0c;结果还超&#xff0c;诶呦: set肯定比map大滴&#xff0c;这里可能刚超就结束了&#x…

C++实现鼠标点击和获取鼠标位置(编译环境visual studio 2022)

1环境说明 2获取鼠标位置的接口 void GetMouseCurPoint() {POINT mypoint;for (int i 0; i < 100; i){GetCursorPos(&mypoint);//获取鼠标当前所在位置printf("% ld, % ld \n", mypoint.x, mypoint.y);Sleep(1000);} } 3操作鼠标左键和右键的接口 void Mo…