http接口实现跨域传递json实体(httpclient和jsonp方式都有)

2023-10-27

传:

后台传

/**
     * 不知道谁写的发送post请求,很好用
     * @param url
     * @param requestJson
     * @return
     * @throws Exception
     */
    public static String sendPostJson(String url, String requestJson) throws Exception {
        // 创建HttpClientBuilder
        HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
        // HttpClient
        CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
        HttpPost httpPost = new HttpPost(url);
        // 设置请求和传输超时时间
        RequestConfig requestConfig = RequestConfig.custom()
                .setSocketTimeout(60000)
                .setConnectionRequestTimeout(60000)
                .setConnectTimeout(60000)
                .build();
        httpPost.setConfig(requestConfig);

        CloseableHttpResponse response = null;

        try {
            //设置post请求方式为JSON
            httpPost.addHeader("Authorization", "Basic" + encryptBASE64("username", "password"));
            StringEntity data = new StringEntity(requestJson, "UTF-8");
            data.setContentType("application/json; charset=UTF-8");
            httpPost.setEntity(data);

            //发送post请求
            response = closeableHttpClient.execute(httpPost);
            if (response == null || response.getStatusLine() == null) {
                throw new Exception("发送POST请求失败,返回结果为空!");
            }

            //返回状态是否200
            int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode == HttpStatus.SC_OK) {
                //得到请求结果
                HttpEntity entityRes = response.getEntity();
                if (entityRes != null) {
                    String responsetData = EntityUtils.toString(entityRes, "UTF-8");
                    return responsetData;
                }
            } else {
                throw new Exception("发送POST-JSON请求出错:" + response);
            }
        } catch (Exception e) {
            throw new Exception("发送POST请求出现异常,"+e.getMessage());
        } finally {
            try {
                // 关闭连接释放资源
                if (response != null) {
                    response.close();
                }
                if (closeableHttpClient != null) {
                    closeableHttpClient.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        return "";
    }

前台传:

 $.ajax({
            url: 'http://localhost:8080/demo/post',
            type: "post",
            contentType: "application/json",
            dataType: 'JSONP',
            async: false,
            data:
                {
                    word: 1234567
                }
        })

接收:controller接收,参数为HttpServletRequest(万能的)

@PostMapping("/post")
    public String post(HttpServletRequest request) {
        try {
            //对于jsonp
            //request.getParameterMap;
            //String word = request.getParameter("word");

				   //对于httpclient的post数据流
            InputStream inputStream = request.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            String word = "";
            for (String str = ""; (str = bufferedReader.readLine()) != null;
                 word = word + str) {
                ;
            }
            bufferedReader.close();
            inputStream.close();

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

http接口实现跨域传递json实体(httpclient和jsonp方式都有) 的相关文章

  • 从 HTML 模板调用异步函数(Retunes Observable)

    HTML 模板上显示的数据是关键表单数据 意思是 需要翻译 为此 我想从我的模板中调用异步函数 尝试过这个 但没有成功 模板 span class myClass rowValue translateServingStyle size de
  • 如何在 HTML 链接中使用 JavaScript 变量

    我正在开发的网站有一个标签指向与网站所具有的 URL 不同的 URL 我想做的是绕过使用下面的 trueURL 标记来查找网页的网址 因为我需要它来构造一些内部锚点 因为我需要网站的实际网址 以便内部锚点正常工作 我遇到的问题是我不知道应该
  • 将全局样式表与故事书和角度结合使用 - SassError:SassError:预期“{”

    几天来 我一直在尝试将全局样式表集成到故事书中 我已经从 sass 支持文档中集成了 webpackFinal 配置 在 storybook 目录中 我创建了一个 scss loader scss 文件 该文件应该加载全局样式表 在 pre
  • 使用 ReactJS 突出显示文本

    我试图突出显示与查询匹配的文本 但我不知道如何让标签显示为 HTML 而不是文本 var Component React createClass highlightQuery function name query var regex ne
  • 停止 ASP.NET 按钮的页面重新加载

    NET 应用程序中 我插入了一个调用 Javascript 函数的按钮 OnClientClick事件 和 VB NET 函数 OnClick event
  • jQuery:当使用 on .scroll 事件和警报时,firefox 似乎无限循环

    我的主模板之一中有以下 jQuery 代码 document scroll function var scroll top document scrollTop alert scroll top if scroll top lt 70 fi
  • 找不到可接受的代表

    我是 Spring Boot 的新手 我可能会犯一些愚蠢的错误 所以提前对此类问题表示歉意 我正在尝试编写接受以下 JSON 的 POST API id null a 1 3 b somestring mapJson monday 10 0
  • GET 和 POST 方法的单独 Flask 路由

    在 Flask 中定义路由时 最好的做法是使用由多个 HTTP 方法定义的单个路由 并在该单个路由中使用显式逻辑处理不同的 HTTP 方法 例如 app route api users methods GET POST def users
  • 使用jquery,下拉列表选择更改时如何重定向?

    我有一个下拉列表 如果有人选择一个选项 我想根据选择重定向到另一个页面 我怎样才能通过 jquery 做到这一点 将逻辑绑定到 change 事件 并从中获取当前值 val 以确定用户应该被重定向到哪里 此示例假设位置直接存储在值本身中 m
  • 添加/更改 URL 参数并重定向到新 URL

    If the view allURL 中不存在参数 我需要将其与值一起添加到 URL 的末尾 如果它确实存在 那么我需要能够仅更改该值而不创建新的 URL 因为它之前可能有也可能没有其他参数 我找到了这个功能 但我无法让它工作 https
  • Jquery 选择器中的冒号

    我最近将 jquery 从 1 4 更新到 2 1 并开始出现错误 在我的代码中 我有一部分通过 id 选择元素 jQuery id name 这会产生一个错误 但是之前没有错误 1 4 如果我转义冒号 错误就会消失 他们在最新版本中添加了
  • 浏览器中的javascript:异步任务执行模型

    我正在尝试集中注意力并了解 javascript 异步在单线程浏览器环境中的工作原理 作为异步 我们可以同时处理计时器和 xhr 请求 现在假设我有类似下面的东西 function doStuff for var i 0 i lt 1000
  • 如何更改 angularjs $http.jsonp 的标头

    我读了document http docs angularjs org api ng 24http 但我想我一定是误解了 http defaults headers jsonp Accept application json http js
  • 从 Web 浏览器控件读取 Javascript 变量

    我正在尝试读取从表单上的 WebBrowser 控件加载和调用的 Javascript 变量的值 Example index html 引用名为 test js 的 javascript 在 test js 上 创建并填充了几个变量 然后i
  • 如何在 html5 中加载部分 html? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 询问我们的问题推荐或查找工具 库或最喜欢的场外资源与 Stack Overflow 无关 因为它们往往会吸引固执己见的答案和垃圾邮件 反而
  • 用角度js中的字母过滤列表

    我在表格中显示了一个列表 我需要使用名称的第一个字母来过滤结果 在列表上方我有一个字母 A B C D 等等 单击后 字母列表将按名字过滤 例如 列表详细信息是Apple Boy Bridge点击后A Apple将显示 我必须过滤国家名称以
  • Google Calendar API:获取指定日期的空闲时段列表

    我需要获取我的谷歌日历中的免费时段列表 现在我只是获取事件列表 我在用谷歌日历 https www npmjs com package google calendar npm google calendar events list calO
  • 在Java中解析包含multipart/form-data请求体的字符串

    问题陈述 我认为标题说明了一切 我正在寻找解析 a 的方法String包含 multipart form data HTTP 请求的正文部分 IE 字符串的内容看起来像这样 xyzseparator blah Content Disposi
  • Vue js - 在同一级别的两个组件内传递数据

    我有需要从一个传递的数据component1到另一个component2 我不使用vuex or router 组件树 Parent Component1 Component2 从一开始component1我发出 ajax 请求 检索信息并
  • 未终止的字符串文字

    我有一个 php 脚本 可以在我的服务器上上传 mp3 文件 我使用 上传 有一个事件 onSelect 文档 http www uploadify com documentation events onselect 当文件上传时调用 使用

随机推荐

  • Vue入门

    npm install g cnpm registry https registry npm taobao org cnpm install global vue cli vue init webpack my project cd my
  • 大厂 H5 开发实战手册

    京东凹凸实验室 Aotu io 英文简称 O2 创立于 2015 年 10 月 为掘金最早一批联合编辑 拥有数千关注者 O2 对内负责京东 PC 端首页 多个频道页 小程序版本京东购物 微信手 Q 京东购物 M 端京东 各类营销活动场景 H
  • Java使用TreeSet来排序学生成绩

    Java TreeSet TreeSet是一个有序的集合 它的作用是提供有序的Set集合 在java中使用 下面我们来进行一个实例来操作一下 具体看看怎么使用 我们的要求是用TreeSet集合存储多个学生对象的姓名 语文和数学成绩 然后按照
  • 一道经典面试题透彻理解面向对象编程思想和简单工厂模式

    一道经典的面试题如下 用一种面向对象编程语言实现一个计算器来满足整数的加减乘除运算 大部分人的代码如下 1 0版本 include
  • 【教程&工具】微信同步文章到Bear

    在我日常工作中 我会将各种互联网以及生活中产出的信息汇总到Bear 再通过Bear的云同步使我各个终端的信息保持一致 以前在使用有道云笔记的时候 有个功能我很喜欢 就是当看到一篇想收藏的文章的话 就可以直接右上角发送到有道云笔记 如下图 顺
  • “蓝桥杯总结”

    历时一个学期第十四届蓝桥杯也算是落下帷幕了 我报的是java B组从什么都不懂到省一 自己都觉得不可思议 再到国优 优秀奖也就是安慰奖 这一次参赛虽然国赛等于没拿奖 但对我而言已经很满意了 正经总结可能还要说点经验什么的 但我备赛确实没什么
  • SpringBoot之一次关于bootstrap.yaml文件的思考

    一次关于bootstrap yaml文件的思考 1 简介 2 前言 3 BootstrapApplicationListener 4 ConfigFileApplicationListener 最后 1 简介 本文不是介绍yaml的语法 是
  • OpenCV t reshold函数

    threshold函数作用 去掉噪 例如过滤很小或很大像素值的图像点 threshold函数python版原型 retval dst cv threshold src thresh maxval type dst 参数说明 src 原图像
  • golang-实现自己的事件驱动

    golang实现自己的事件驱动 众所周知 go中的异步操作都已经封装在了运行时的过程中 有关socket的网络的异步操作都封装到了go的netpoll中 从而简化了编程形式 本文也就根据evio库总结而来 golang跨平台库 如何编写go
  • 【笔记】buck/boost/buck-boost相关计算公式

    目录 BUCK 输入与输出 电感纹波电流 电感感量 电感电流 输出纹波电压 输入电容纹波电流 电感相关参数 感量 额定电流 温升电流 饱和电流 DCR 直流阻抗 开关频率 BOOST 拓扑 BUCK BOOST 拓扑 波形 学习过程中做好笔
  • 软考之项目网络图(活动图)

    搜集各种例题及解析已提供更好的理解
  • Thumbnails操作图片发红的问题解决

    这个问题其实是由于这条语句导致的错误 ImageIO read new File watermark png 0 5f 所以我们用bufferedimage构造就不会出现这个问题 下面 ImageWrapper imageWrapper I
  • 类的加载生命周期

    类的加载生命周期 1 加载 加载 是 类加机制 的第一个过程 在加载阶段 虚拟机主要完成三件事 1 通过一个类的全限定名来获取其定义的二进制字节流 2 将这个字节流所代表的的静态存储结构转化为方法区的运行时数据结构 3 在堆中生成一个代表这
  • CentOS6下安装docker

    CentOS6下安装docker 官方文档要求Linux kernel至少3 8以上 且docker只能运行在64位的系统中 由于RHEL6和CentOS6的内核版本为2 6 因此必须要先升级内核 下面以CentOS6 5 64位 为例 介
  • Docker 安装 Nginx 容器 (完整详细版)

    Docker 安装 完整详细版 Docker 日常命令大全 完整详细版 说明 Docker如果想安装软件 必须先到Docker镜像仓库下载镜像 Docker官方镜像 1 寻找Nginx镜像
  • ffplay如何通过URLProtocol拉取http数据【源码篇】

    目录 背景 必备的小知识点 函数调用流程图 ffurl alloc url find protocol http open cnx internal http connect probe 探查 av probe input buffer2
  • 渗透测试之Webshell

    简介 Webshell是通过服务器开放的端口获取服务器的某些权限 它又称脚本木马 一般分为大马 小马 一句话木马 大马 体积大 功能齐全 能够管理数据库 文件管理 对站点进行快速的信息收集 甚至能够提权 小马 一般而言 我们在上传文件的时候
  • Datawhale 实践项目 天池赛中零基础入门推荐系统 Task04:特征工程 笔记[让我看看]

    文章目录 1 制作特征和标签 转成监督学习问题 1 1 导包 1 2 df节省内存函数 1 3 数据读取 1 3 1 训练和验证集的划分 1 3 2 获取历史点击和最后一次点击 1 3 3 读取训练 验证及测试集 1 3 4 读取召回列表
  • 史上最短随机颜色代码

    获取随机颜色1 function getColor var col for var i 0 i lt 3 i col Math floor Math random 256 toString 16 padStart 2 0 return co
  • http接口实现跨域传递json实体(httpclient和jsonp方式都有)

    传 后台传 不知道谁写的发送post请求 很好用 param url param requestJson return throws Exception public static String sendPostJson String ur