json格式请求http

2023-10-31

例子:JsonObject response = postJsonData(url, gson.toJson(applyInfo));//applyInfo 一个java对象

        

 /**
     * 发送 post 请求
     * 
     * @param url 地址
     * @return {@link JsonObject}
     */
    public static JsonObject postJsonData(String url, String jsonStrData) {
        HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
        HttpPost post = new HttpPost(url);
        JsonObject jsonObject = null;
        try {
            CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
            HttpEntity entity = new StringEntity(jsonStrData, "UTF-8");
            post.setEntity(entity);
            post.setHeader("Content-type", "application/json");
            HttpResponse resp = closeableHttpClient.execute(post);
            jsonObject = convertResponseBytes2JsonObj(resp);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return jsonObject;
    }

    /**
     * 发送 get 请求
     * 
     * @param url 地址
     * @return {@link JsonObject}
     */
    public static JsonObject getJsonResponse(String url) {
        JsonObject jsonObject = new JsonObject();
        HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
        HttpGet get = new HttpGet(url);
        CloseableHttpClient closeableHttpClient = null;
        try {
            closeableHttpClient = httpClientBuilder.build();
            HttpResponse resp = closeableHttpClient.execute(get);
            jsonObject = convertResponseBytes2JsonObj(resp);
        } catch (IOException e) {
            e.printStackTrace();
            if (null != closeableHttpClient) {
                try {
                    closeableHttpClient.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        }
        return jsonObject;
    }

    /**
     * Header 为 application/json POST 请求数据
     * 
     * @param resp
     * @return {@link JsonObject}
     */

    private static JsonObject convertResponseBytes2JsonObj(HttpResponse resp) {
        JsonObject jsonObject = null;
        try {
            InputStream respIs = resp.getEntity().getContent();
            byte[] respBytes = IOUtils.toByteArray(respIs);
            String result = new String(respBytes, Charset.forName("UTF-8"));

            if (null == result || result.length() == 0) {
                LOG.error("请求无响应");
            } else {
                if (result.startsWith("{") && result.endsWith("}")) {
                    jsonObject = (JsonObject) jsonParser.parse(result);
                } else {
                    LOG.error("请求不能转成JSON对象");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return jsonObject;
    }



附:

 public static String post(String url, Map<String, String> params) {
        DefaultHttpClient httpclient = new DefaultHttpClient();
        String body = null;
        log.info("create httppost:" + url);
        HttpPost post = postForm(url, params);
        body = invoke(httpclient, post);
        httpclient.getConnectionManager().shutdown();
        return body;
    }

    public static String get(String url) {
        DefaultHttpClient httpclient = new DefaultHttpClient();
        String body = null;
        log.info("create httppost:" + url);
        HttpGet get = new HttpGet(url);
        body = invoke(httpclient, get);
        httpclient.getConnectionManager().shutdown();
        return body;
    }

    private static String invoke(DefaultHttpClient httpclient, HttpUriRequest httpost) {
        HttpResponse response = sendRequest(httpclient, httpost);
        String body = paseResponse(response);
        return body;
    }

    @SuppressWarnings("unused")
    private static String paseResponse(HttpResponse response) {
        HttpEntity entity = response.getEntity();
        log.info("response status: " + response.getStatusLine());
        String charset = EntityUtils.getContentCharSet(entity);
        String body = null;
        try {
            body = EntityUtils.toString(entity);
            log.info(body);
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return body;
    }

    private static HttpResponse sendRequest(DefaultHttpClient httpclient, HttpUriRequest httpost) {
        HttpResponse response = null;
        try {
            response = httpclient.execute(httpost);
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return response;
    }

    private static HttpPost postForm(String url, Map<String, String> params) {

        HttpPost httpost = new HttpPost(url);
        List<NameValuePair> nvps = new ArrayList<NameValuePair>();

        Set<String> keySet = params.keySet();
        for (String key : keySet) {
            nvps.add(new BasicNameValuePair(key, params.get(key)));
        }

        try {
            httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        return httpost;
    }


get请求

String access_token = client.get(url);


post请求

String response = client.post(url, param);//Map<String, String> param




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

json格式请求http 的相关文章

  • 从 PDF 中提取不可选择的内容

    我正在使用 Apache PDFBox 从 PDF 文件中提取页面 但找不到提取不可选择的内容 文本或图像 的方法 从 PDF 文件中选择内容是没有问题的 请注意 相关 PDF 在复制内容方面没有任何限制 至少从我在文件的 文档限制摘要 中
  • 将比较器对象存储在数组中

    我为我的对象定义了 4 个比较器 如下所示 public static Comparator
  • Java Arraylist of object 按日期从数组列表中删除元素

    这是我的数组列表 ArrayList
  • Spring Batch如何作为Reader读取多个表(查询)并将其写入平面文件写入

    在我的项目中 我读取了具有不同查询的多个表 并将这些结果集合并到平面文件中 我该如何实现这一目标 我的意思是 JdbcReader 直接采用 1 个选择查询 我如何自定义它 如果 JdbcCursorItemReader 不能满足您的需求
  • 修复 java 内存泄漏的学习网站

    学习修复 java 内存泄漏的最佳地点是什么 我一直试图在网络上找到好的资源 但令我失望的是 我发现正在讨论玩具示例 我还能够对小型玩具转储进行故障排除 但现实世界的应用程序转储更具挑战性 并且提供的线索很少 我尝试过 Jhat JMap
  • JTable AutoCreateRowSorter 将数字排序为字符串

    我有一个 JTable JTable table new JTable String colNames c1 DefaultTableModel model new DefaultTableModel Integer x new Integ
  • Java HttpURLConnection:内容长度计算

    我目前正在为 bitbucket issues RESTful API 开发一个库 我取得了很大的进步 现在我要解决这个部分更新问题 http confluence atlassian com display BBDEV Issues Is
  • 如何用java对jpg进行像素化?

    我正在尝试使用 Java 6 对 JPEG 进行像素化 但运气不佳 它需要使用 Java 而不是像 Photoshop 这样的图像处理程序 并且它需要看起来像老派 像这样 有谁能够帮助我 使用java awt image javadoc h
  • 在 Java 和 PHP 之间加密/解密字符串

    我使用 AES 加密来加密和解密服务器端的 php 和 Android 应用程序 作为客户端 之间的字符串 PHP 中的加密字符串为 HaxRKnMxT24kCJWUXaVvqDHahzurJQK sYA4lIHql U 在 Java 中是
  • 如何对JConsole的密码文件的密码进行加密

    我正在使用 JConsole 访问我的应用程序 MBean 并使用 password properties 文件 但根据 Sun 的规范 该文件仅包含明文格式的密码 com sun management jmxremote password
  • 如何在最短的时间内克隆java中的输入流

    有人可以告诉我如何克隆输入流 并花费尽可能少的创建时间吗 我需要多次克隆输入流以使用多种方法来处理 IS 我尝试了三种方法 但由于这样或那样的原因 事情不起作用 方法 1 感谢 stackoverflow 社区 我发现以下链接很有帮助 并将
  • GAE - Eclipse 中的开发服务器未更新?

    我在 Eclipse 上使用 Google AppEngine 开发服务器 我的本地网页似乎没有更新 直到我在开发服务器上进行了多次重新启动 使用 Eclipse 中的 运行 或 调试 按钮 我究竟做错了什么 基本流程是 更改 java 文
  • 在java中设置Process对象的安全性

    有人可以告诉我如何限制通过进程对象访问系统属性吗 如果我通过进程对象运行以下代码 我可以抛出安全异常吗 System getProperty user home 请告诉我如何为流程对象配置证券 在ProcessBuilder类文档中 环境方
  • 无法运行简单的 doclet 程序:包 com.sun.javadoc 不存在

    我正在尝试运行一个简单的 doclet 程序 但无法编译它 javac cp cygdrive c Progra 2 Java jdk1 8 0 65 lib tools jar A java 但它抛出 A java 1 错误 包 com
  • Android:如何以编程方式仅圆化位图的顶角?

    我目前正在使用这段代码 Override public Bitmap transform Bitmap source Bitmap result Bitmap createBitmap source getWidth source getH
  • Spring Boot 健康执行器 - 什么时候上线?

    我找不到任何有关 Springs Health Actuator 何时返回 UP 状态的文档 你能依靠一切吗 Components正在初始化 会不会 Controller准备好满足请求了吗 为了测试应用程序上下文是否已加载 您可以执行此自定
  • java.lang.NoClassDefFoundError:com.google.ads.AdView

    我正在尝试将 admob 广告合并到我的应用程序中 到目前为止我已经添加了以下代码 在我的应用程序主要活动的 onCreate 方法中 adView new AdView this AdSize BANNER my code number
  • Spring Data JPA 和 Exists 查询

    我正在使用 Spring Data JPA 使用 Hibernate 作为我的 JPA 提供程序 并想要定义一个exists附加 HQL 查询的方法 public interface MyEntityRepository extends C
  • SAXParseException:找不到元素“定义”的声明

    我对 camunda 和 DMN 完全陌生 我试图在 spring boot 中运行 DMN 示例 链接在这里 https github com camunda camunda bpm examples tree master dmn en
  • 跳过一行GridBagLayout

    我在 JFrame 上使用 GridBagLayout 我希望能够跳过一两行 但将这些行显示为空白 然后在这些行后面有一个按钮 我在文档中找不到任何方法来执行我所描述的操作 有谁知道我可以执行此操作的任何方法吗 发现它比添加空组件干净得多

随机推荐

  • 解决微信小程序前台获取不到后台数据

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 正式环境需要域名 需要HTTPS等网络协议 所以在开发的时候要勾选 不校验合法域名 web view 业务域名 TLS 版本以及 HTTPS 证书 以保证微信小程序前台获取
  • wsl1转wsl2 由于未安装所需的特性,无法启动操作

    参考官方修复文档 我尝试了修复 1 取消阻止Hyper V主机计算服务 转换成功 若要取消阻止该服务 必须首先检查是否正在使用防病毒解决方案 如果您使用的是 Windows Defender 请继续执行以下步骤 进入设置 windows安全
  • 总结篇:排序算法

    目录 1 前言 2 排序算法三问 3 排序算法三傻 4 不稳定排序算法 5 稳定排序算法 6 其他算法 7 看图识算法 1 前言 FBI WARNING 本文旨在于以通俗易懂地方式阐述主要排序算法及其特点 什么是排序算法 排序算法 Sort
  • hql取满足条件最新一条记录_统计学习方法 - 序列最小最优化算法(SMO)解析

    本文包括 支持向量机的低效问题 序列最小最优化算法 SMO 的思路 两个变量二次规划的求解方法 变量的选择方法 精度的概念 其它有关数据分析 机器学习的文章及社群 1 支持向量机的低效问题 我们知道支持向量机的拉格朗日乘数法对偶形式的外部最
  • JavaScript基础篇

    JavaScript基础篇 一 介绍 1 JavaScript是一种专门在浏览器编译并执行的编程语言 2 JavaScript主要处理用户与浏览器之间请求问题 3 JavaScript采用 弱类型编程语言风格 对 面向对象思想 来进行实现的
  • Linux基础之常用操作

    这里介绍的是一些非常基本的命令 在linux管理中经常用到 包括用户创建 文件操作 目录操作 vim文本编辑等等 用户切换与创建 whoami命令 用于显示自身用户名称 root linux00 whoami root su命令 用于切换用
  • GIT的使用以及分支的讲解

    文章目录 前言 一 GIT是什么 二 Git的使用 1 在本地初始化一个本地仓库 2 工作区到暂存区 使用流程 3 暂存区到历史区 使用流程 4 文件夹操作 三 Git的分支 1 概述 2 命名规范 3 分支的操作 总结 前言 掌握GIT的
  • 网站存活,ip反查,权重备案查询(方法)

    常用漏洞库 佩奇漏洞文库 https www yuque com peiqiwiki peiqi poc wiki http wiki peiqi tech 白阁漏洞文库 https wiki bylibrary cn E6 BC 8F E
  • 关于CS模式和P2P模式分发文件速度的思考

    cs模式 看到这里我首先想到是 难道不是NF us F min di 吗 然后我想了一会 分发文件并不是先上传再下载 而是一个报文一个报文的上传再一个报文一个报文的下载 也就是说 这边刚上传第一个报文 另一边就开始下载 所以几乎是同时开始上
  • 排序算法(4)----快速排序

    快速排序由C A R Hoare在1962年提出 它的基本思想是 通过一趟排序将要排序的数据分割成独立的两部分 其中一部分的所有数据都比另外一部分的所有数据都要小 然后再按此方法对这两部分数据分别进行快速排序 整个排序过程可以递归进行 以此
  • 基于Java+SpringBoot+vue的租房网站设计与实现(附源码,使用教程)

    基于Java SpringBoot vue的租房网站设计与实现 文章目录 基于Java SpringBoot vue的租房网站设计与实现 一 前言介绍 二 主要技术 三 系统设计 部分 3 1 主要功能模块设计 3 2 系统登录设计 四 数
  • 【Vscode】远程内存占用大

    查看远程服务器上的扩展 依次删除 重新连接后观察内存占用 此扩展占用较高 约2G 前后端项目 依赖较多导致
  • “三天打鱼,两天晒网“的c语言实现

    中国有句俗话叫 三天大鱼 两天晒网 某渔夫从2000年1月1日开始 三天打鱼 两天晒网 问该渔夫在以后的某一天中是在 打鱼 还是在 晒网 需求 用户输入某年某月某日 判断出该日期是在打鱼还是在晒网 思路 1 接收键盘输入的日期 2 计算从2
  • [靶场] SQLi-Labs Less62-Less69

    66 Less62 请求方式 注入方式 备注 GET 盲注 130次语句以内完成 分析 我们需要指定challenges数据库中表名 表名为10个字符 包含数字和小写字母 还需要知道表中的字段名 字段名为secret XX XX为4个字符
  • LDO的原理以及重要指标

    http t csdn cn YaR0G 本文告诉你三件事 LDO的基本原理 LDO都有哪些参数 有什么意义 选型时的注意事项 1 LDO基本原理 LDO是Low Dropout Regulator的缩写 意思是低压差线性稳压器 低压差 是
  • 深度学习中的常用八种卷积运算简介

    参考资料 https towardsdatascience com a comprehensive introduction to different types of convolutions in deep learning 66928
  • iOS 14 自定义画中画悬浮窗 Custom AVPictureInPictureController 实现方案

    iOS 14 基于 AVPictureInPictureController 实现自定义画中画 涵盖所有功能与难点 市面上的各种悬浮钟和提词器的原理都是基于此 Demo源码在文末 使用 iOS 画中画的要求 真机 不能使用模拟器 iOS 1
  • 重构Webpack系列之二 ---- 入口起点

    重构Webpack系列之二 入口起点 一 概念 入口起点 entry point 指示Webpack应该使用哪个模块 来作为构建其内部依赖图的开始 进入入口起点后 Webpack会找出哪些模块和库是跟入口起点 直接或间接 有依赖的关系 默认
  • 开源云原生与行业应用

    ChinaOSC 2022开源云原生与行业应用论坛将于2022年8月21日13 30 17 15在陕西省西安高新国际会议中心召开 本论坛将邀请多位知名开源云原生领域的贡献者 实践者 分享和探讨开源云原生赋能产品迭代 行业应用创新的最佳实践
  • json格式请求http

    例子 JsonObject response postJsonData url gson toJson applyInfo applyInfo 一个java对象 发送 post 请求 param url 地址 return link Jso