java请求http页面的json格式数据,并转换存入数据库

Java调用Http接口返回的xml格式数据,解析成Json格式 先用SAXReader和Document得到xml格式的数据 @RequestMapping(value = "web_service_url", method = RequestMethod.GET) public String GetAllNotAcceptedCaseList(){ String webServiceUrl=GlobalUtils.getConfig("web_service_url"); //读取配置文件中配置的接口路径,也可直接写死 try { 阅读详情

 

仅供大家参考,如内容中有不对的地方请大家谅解,并指出,我会及时改正,谢谢!!!

 

在我参与的实际项目中,有一个需求是,给你一个http网址(如:http://www.baidu.com),让你访问网页的值,这个值为json格式,让你获取到并存入数据库,以备用;以下为实现步骤,仅供大家参考:

spring引入引入@Scheduled注解  需要在applicationContext.xml文件中配置:

<!--spring扫描注解的配置   -->    
<context:component-scan base-package="com.baodian.bdweb.timer" />   
      
<!--  开启这个配置,spring才能识别@Scheduled注解     -->  
<task:annotation-driven scheduler="qbScheduler" mode="proxy"/>    
<task:scheduler id="qbScheduler" pool-size="10"/>  

 

springBoot引入@Scheduled注解配置:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

 

示例json:

{ "test1": "wx9fdb8ble7ce3c68f", "test2": "123456789", "testData1": { "testdatason1": "97895455" "testdatason2":3, "testData2": [ { "testshuzu1":"12" "testshuzu1":"11" }, { "testshuzu2":"13" "testshuzu2":"14" }, { "testshuzu3":"15" "testshuzu3":"16" } ] } }

 

1.工具方法:

释意:

1.url就是你要获取数据的网址(如:http://www.baidu.com)

2.params在这里可以一个值(key不能为空,但value可以,例如map(key:test1,value:“”))也可以在map中多个值

   /**
     * post请求(用于key-value格式的参数)
     */
    public static String doPost(String url, Map params) {
        BufferedReader in = null;
        try {
            // 定义HttpClient
            HttpClient client = new DefaultHttpClient();
            // 实例化HTTP方法
            HttpPost request = new HttpPost();
            request.setURI(new URI(url));
            // 设置参数
            if(params!=null && params.size()>0){
                List<NameValuePair> nvps = new ArrayList<NameValuePair>();
                for (Iterator iter = params.keySet().iterator(); iter.hasNext(); ) {
                    String name = (String) iter.next();
                    String value = String.valueOf(params.get(name));
                    nvps.add(new BasicNameValuePair(name, value));
                }
                request.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
            }
            HttpResponse response = client.execute(request);
            int code = response.getStatusLine().getStatusCode();
            if (code == 200) { // 请求成功
                in = new BufferedReader(new InputStreamReader(response
                        .getEntity().getContent(), "utf-8"));
                StringBuffer sb = new StringBuffer("");
                String line = "";
                String NL = System.getProperty("line.separator");
                while ((line = in.readLine()) != null) {
                    sb.append(line + NL);
                }
                in.close();
                return sb.toString();
            } else {
                System.out.println("状态码:" + code);
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();

            return null;
        }
    } 

2.项目中实际方法:

 public void addTConstructionSupervision() {
        Map map = new HashMap();
        map.put("maps","");
        String url1 = "http://xxzx.zonwi.net:8009/getallmaintain";
        String str1 = doPost(url1,map);
        JSONObject json1= JSON.parseObject(str1);
        JSONArray jsonArray = json1.getJSONArray("result");
        int k = jsonArray.size();
        if(k>0&&jsonArray!=null)
        {
            for(int i=1;i<k;i++)
            {
                TConstructionSupervision tcs = new TConstructionSupervision();
               /**
               *此处向对象中的每个属性赋值
               */
                TConstructionSupervision tcsv = tcvnservice.get(tcs.getId());
                if(tcsv==null||"".equals(tcsv))
                {
                    service.insert(tcs);
                }
            }
        }
    }

3.定时器执行方法

   @Scheduled(cron="0 0/30 * * * ?")   //每30min执行一次
    @Override
    public void savetsc() {
        logger.info("向数据库插入施工监管数据");
        addTConstructionSupervision();
    }

查询的时候,直接写定时器向数据库中插入数据,这里的定时器我用的是@Scheduled注解,还有其他的方式;想学习定时器的请在以下优快云网址学习:

java定时任务的几种实现方式:https://blog.youkuaiyun.com/kegumingxin2626/article/details/72854823

spring定时任务详解(@Scheduled注解):https://blog.youkuaiyun.com/qq_33556185/article/details/51852537

注意点:

1.json转换,赋值的时候判空

2.json是否有重复数据,如果有需要判断,否则在插入的时候回违反主键唯有约束(前提,json中有主键),如自己生成uuid的话则不需要考虑

仅供大家参考,如内容中有不对的地方请大家谅解,并指出,我会及时改正,谢谢!!!

Java中的JSON格式HTTP POST请求发送指南 在现代软件开发中,HTTP协议的POST请求是一种非常常见的网络通信方式。它主要用于向服务器提交数据,并触发服务器端的处理逻辑。了解HTTP POST请求的基本概念,可以帮助开发者更好地进行客户端与服务器间的交互。Apache HttpClient 是一个功能强大的客户端 HTTP 通信库,广泛用于 Java 应用程序中执行 HTTP 请求。它提供了一种简单而强大的方式来发送 HTTP 请求并处理响应。 阅读详情

相关推荐

MediaCreationToolW11:Windows11系统升级与修复利器

在日常使用Windows11系统的过程中,我们可能会遇到一些棘手的问题,比如系统更新时出现异常导致无法成功更新,或者系统本身出现异常需要进行无损修复。此外,当我们的电脑尚未升级到Windows11,而我们又希望进行升级时,一款高效且可靠的工具就显得尤为重要。接下来,MediaCreationToolW11将开始下载Windows11的安装文件,并创建Windows11介质。在“选择你要执行的操作”界面中,选择“ISO文件”。此时,你可以使用你的账户登录系统,并开始使用全新的Windows11系统了。

nntxthml的博客 2404

Java发起HTTP请求并解析JSON返回数据

本文介绍了Java中发起HTTP请求并处理返回信息的方法。通过HttpURLConnection类实现GET/POST请求,详细说明了设置请求头、添加自定义头信息以及处理HTTPS请求时忽略SSL证书验证的操作。文章提供了两种添加请求头的方式(直接添加和使用Map对象),并包含处理SSL证书异常的代码示例。适用于需要从Java程序发起HTTP请求并处理返回数据的开发场景。

weixin_42077074的博客 6676

Comsol超声空化气泡仿真:从基础理论到工业应用实践

本文详细介绍了Comsol超声空化气泡仿真的基础理论及工业应用实践。通过解析超声空化现象、Comsol模型搭建流程及求解器优化技巧,帮助工程师掌握气泡仿真技术,提升超声波清洗和乳液制备等工业应用的效率与质量。

weixin_27966471的博客 250

java 将json类型数据存数据库

数据库相关视频讲解:用python编程Excel有没有用处?使用Java将JSON类型数据存入数据库 在现代的软件开发中,JSON(JavaScript Object Notation)已经成为了一种非常流行的数据格式。它是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。在很多情况下,我们需要将JSO...

weixin_40703897的博客 760

ISO15118-20证书结构关系解读(7.3.2.1)

本文主要讲述ISO15118-20:2022标准所有证书结构的关联关系,目的是为后续基于ISO15118-20车桩通讯及PNC充电等提供基础支撑。 本文所有的证书关系图全部来源于ISO15118-20:2022标准规范,在后续的讲解过程会将图的摘取出处给提供出来,便于后期文章和标准对应起来解读。

weixin_40900932的博客 3180

eNSP搭建基础网络

1、除5的环回地址固定以外,整个其他所有网段基于192.168.1.0/24进行合理的IP地址划分 2、R1-R4每个路由器存在两个环回接口,用于模拟连接pc网段﹔地址也在192.168.1.0/24这个网络范围内 3、R1-R4上不能直接编写到达5.5.5.0/24的静态路由,但依然可以访问 4、全网可达,尽量减少每台路由器,路由表条目数量,避免环路出现5R4与R5间,正常100oA链路通信,故障时自动改为100M 全网使用192.168.1.0/24网段进行划分,尽量减少路由条目Pc端IP使用pHcP技

在月光下棕榈树的叶子在瑟瑟抖动 8465

保存Json对象到数据库

有两种实现方式,一种是直接保存 Json 对象到数据库,这种方式在创建实体类以及编写 Mapper XML 脚本时需要对 Json 对象做格式转换,另一种是直接以字符串保存,取用时使用。通常要保存一个 Json 字符串的话,一般都是比较大的数据,项目过程中可能需要保存 Json 对象到数据库中。要根据具体的数据量的大小决定使用。然后在编写 Mapper XML 脚本时,语句中需要对 Json 属性的字段设置。以字符串类型保存很简单,如下。解析为 Json 对象。类型是不够的,而需要用。

kezhou的博客 2319

越野换了逐飞的ips200pro的屏幕后代码烧录中报错: “Cannot initialize device connection” 和 “Flashing failed” ...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1149

Java + MySQL 实现存储完整 Json

Java + MySQL 实现存储完整 Json

qq_45256357的博客 2210

全覆盖路径规划开源项目Clean-robot-turtlebot3关键函数解析(上)

本系列文章主要介绍全覆盖路径规划开源项目Clean-robot-turtlebot3的相关内容,包含如下四篇文章,分别介绍了开源项目Clean-robot-turtlebot3流程的概括总结、ROS坐标系常用坐标及其变换、Clean-robot-turtlebot3关键函数解析等内容。

慕羽★的博客 2778

自然语言处理6 -- 情感分析

1 概述 情感分析是自然语言处理中常见的场景,比如淘宝商品评价,饿了么外卖评价等,对于指导产品更新迭代具有关键性作用。通过情感分析,可以挖掘产品在各个维度的优劣,从而明确如何改进产品。比如对外卖评价,可以分析菜品口味、送达时间、送餐态度、菜品丰富度等多个维度的用户情感指数,从而从各个维度上改进外卖服务。 情感分析可以采用基于情感词典的传统方法,也可以采用基于深度学习的方法,下面详细讲解 ...

谢杨易的博客 5万+

java实现将json数据存到mysql数据库

【代码】java实现将json数据存到mysql数据库。

weixin_45978839的博客 1565

uniapp [安卓苹果App端] - 详细实现自定义水印相机功能,调用手机摄像头打开相机并在周围悬挂自定义水印,使用相机拍照后添加水印文字或样式,uniapp APP端水印相机完整源码,兼容强大可靠

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果app,水印相机,uniapp水印相机,Uniapp安卓app实现水印相机,uniapp苹果ios水印相机,打开系统相机拍照添加水印,地点打卡相机,水印相机(水印照片,图片加水印),uniapp自定义水印相机,制作水印相机给图片添加水印并且保存图片至本地,uniapp拍照图片加水印,水印相机功能,手机调起摄像头拍照时自动插入文字、图片动态水印效果,支持水印显示拍摄者当前城市定位、自由调整水印大小和位置,手机拍照时

🏆 前端领域优质创作者 1万+

发起http的post请求入参格式为json

因以下代码是我在公司业务中的代码,涉及到公司机密的地方我都做了一些修改,如果有地方看不懂,请留言,谢谢。如写的不好还请多多包涵。

qq_41984644的博客 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java如何发起http请求

Java如何发起http请求前言一、GET与POST1.GET方法2.POST方法实现代码实例演示字符串转json结束 前言 在未来做项目中,一些功能模块可能会采用不同的语言进行编写。这就需要http请求进行模块的调用。那么下面,我将以Java为例,详细说明如何发起http请求。 一、GET与POST GET和POST是HTTP的两个常用方法。 GET指从指定的服务器中获取数据 POST指提交数据给指定的服务器处理 1.GET方法 使用GET方法,需要传递的参数被附加在URL地址后面一起发送到服务器。

Littleflowers的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Spring 拦截器:获取 Request 请求体中的 JSON 数据并转换为 Java 对象

在 Spring 的 Web 应用中,我们常使用拦截器()来处理请求的统一逻辑。通常情况下,拦截器可以轻松获取请求头和 URL 参数,但若需要获取请求体中的 JSON 数据并将其转换为 Java 对象,则需要一些特殊处理。本文将从基础概念、实现步骤、完整代码示例等方面,详细解析如何实现这一功能,适合小白快速上手。本文详细解析了如何在 Spring 拦截器中获取请求体中的 JSON 数据,并转换为 Java 对象。通过自定义。

沉淀所学,分享所思,让热爱与成长同行。商务记录AI实战经验,助力开发者快速成长。 热爱AI,希望做出有影响力的技术成果。 技术点亮生活,分享连接价值与机会。 专注AI落地实战,陪你走好技术每一步。 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C#获取http请求的JSON数据并解析

C#获取http请求的JSON数据并解析,第一步,先拿到http的数据,第二步,把JSON转为list(或者使用JArray对象解析),然后就可以正常使用数据了。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 5816

Java实现Http的Get请求发送Json格式报文

主函数代码块: HttpClient httpClient = HttpClientBuilder.create().build(); // Get请求 URIBuilder uriBuilder = new URIBuilder(payurl); if (StringUtils.isNotEmpty(reqJson))...

老张的便利贴 4167

java 发送http请求获得json 以及解析json

博主在做一款图书app的后台,最近遇到的一个需求: 前端向后端返回图书的isbn码,后端向前端返回该isbn对应图书的信息,例如书名、作者、出版社、简介等。 后端实现的逻辑: 读取isbn码,判断是否为空,为空则报错 查看数据库是否有与该isbn匹配的图书信息,如果有则直接返回 如果没有,则利用豆瓣开发者工具,进行查找,通过对接收到的信息进行解析,并插入到数据库中 前两步都没有问题,问...

卤小蛋学编程 1万+

HTTP请求及JSON字符串与JAVA对象的相互转换

HTTP请求及JSON字符串与JAVA对象的相互转换

lixuanhong的博客 1851

android studio java post请求数据,并转换为json对象

1、创建连接 HttpURLConnection connect=(HttpURLConnection)url.openConnection(); 2、设置请求方式 connect.setRequestMethod("POST"); 3、设置数据返回格式 connect.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); 4、接收数据 InputStream input=connect.getInputStrea

weixin_42544876的博客 1671

表白墙服务器版【交互接口、服务器端代码、前端代码、数据存入文件/数据库】

表白墙服务器版【交互接口、服务器端代码、前端代码、数据存入文件/数据库】: 一、准备工作 二、约定前后端交互接口 三、实现服务器端代码 四、调整前端页面代码 五、数据存入文件 六、数据存入数据库

crazy_xieyi的博客 7638

java发送get请求获取json数据 存入文件供hive表解析

1.java代码,结构如下入 1.pom.xml文件 <!--string和json数据交换转换jar包--> <dependencies> <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version

summer089089的博客 3006

java发送post请求并传json格式参数

/** * 发送post请求 * @param url 路径 * @param jsonObject 参数(json类型) * @param encoding 编码格式 * @return * @throws ParseException * @throws IOException */ public s...

it_zhang_PG的博客 1万+

java发送json post请求_java代码发送JSON格式的httpPOST请求

package com.test;import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.net.H...

weixin_35318150的博客 1961
下一篇: java代码编写注意的事项
呱小飞
博客等级 码龄9年 26粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值