先简单的介绍一下聚合数据,不看官网吹的一大堆牛掰,说白了聚合数据是属于专门提供第三方接口的地方,里面什么都有这个是网址,大家可以进去看看https://www.juhe.cn/。

聚合数据在车辆查询违章一共提供了4个接口:

  • 获取支持城市参数接口
  • 请求违章查询接口
  • 接口剩余请求次数查询
  • 根据车牌前缀获取城市参数

此博客只用到了请求违章查询接口,因为只做固定城市的业务,但是我给出的原码全部都会包含在内,仅供大家参考!

首先需要最好创建一个util的工具类,专门用于聚合数据的全国违章查询用

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;import net.sf.json.JSONObject;/*** 全国车辆违章查询 - 聚合数据*接口文档:http://www.juhe.cn/docs/36* @author Iohannes*/
public class JuheWZUtils {public static final String DEF_CHATSET = "UTF-8";public static final int DEF_CONN_TIMEOUT = 30000;public static final int DEF_READ_TIMEOUT = 30000;public static String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";//配置您申请的KEY 在个人中心->我的数据,接口名称上方查看public static final String APPKEY = "你自己在聚合数据中此api的appkey";//1.获取支持城市参数接口(暂时不用)public static void wzCitys(){String result =null;String url ="http://v.juhe.cn/wz/citys";//请求接口地址Map<String,Object> params = new HashMap<String,Object>();//请求参数params.put("province","");//默认全部,省份简写,如:ZJ、JSparams.put("dtype","");//返回数据格式:json或xml或jsonp,默认jsonparams.put("format","");//格式选择1或2,默认1params.put("callback","");//返回格式选择jsonp时,必须传递params.put("key",APPKEY);//你申请的keytry {result =net(url, params, "GET");JSONObject object = JSONObject.fromObject(result);if(object.getInt("error_code")==0){System.out.println(object.get("result"));}else{System.out.println(object.get("error_code")+":"+object.get("reason"));}} catch (Exception e) {e.printStackTrace();}}/*** * @Title: wzQuery  * @Description: TODO  请求违章查询接口* @param dtype 返回数据格式:json或xml或jsonp,默认json* @param city 城市代码 * 辽宁为LN* @param hphm 号牌号码 完整7位* @param hpzl 号牌类型,默认02小型车 01大型车* @param engineno 发动机号 (根据城市接口中的参数填写)后6位* @param classno 车架号 (根据城市接口中的参数填写)后6位 VIN号* @author Iohannes* @date 2019年5月11日 下午1:47:31* @return JSONObject*/public static JSONObject wzQuery(String dtype,String city,String hphm,String hpzl,String engineno,String classno){String result =null;String url ="http://v.juhe.cn/wz/query";//请求接口地址Map<String,Object> params = new HashMap<String,Object>();//请求参数params.put("dtype",dtype);//返回数据格式:json或xml或jsonp,默认json//params.put("callback","");返回格式选择jsonp时,必须传递params.put("key",APPKEY);//你申请的keyparams.put("city",city);//城市代码 *params.put("hphm",hphm);//号牌号码 完整7位 ,需要utf8 urlencode*params.put("hpzl",hpzl);//号牌类型,默认02params.put("engineno",engineno);//发动机号 (根据城市接口中的参数填写)params.put("classno",classno);//车架号 (根据城市接口中的参数填写)try {result =net(url, params, "GET");} catch (Exception e) {e.printStackTrace();}JSONObject object = JSONObject.fromObject(result);/*if(object.getInt("error_code")==0){System.out.println(object.get("result"));}else{System.out.println(object.get("error_code")+":"+object.get("reason"));}*/return object;}//3.接口剩余请求次数查询public static void wzApiNum(){String result =null;String url ="http://v.juhe.cn/wz/status";//请求接口地址Map<String,Object> params = new HashMap<String,Object>();//请求参数params.put("key",APPKEY);//应用APPKEY(应用详细页查询)params.put("dtype","");//返回数据的格式,xml或json,默认jsontry {result =net(url, params, "GET");JSONObject object = JSONObject.fromObject(result);if(object.getInt("error_code")==0){System.out.println(object.get("result"));}else{System.out.println(object.get("error_code")+":"+object.get("reason"));}} catch (Exception e) {e.printStackTrace();}}/**** @param strUrl 请求地址* @param params 请求参数* @param method 请求方法* @return  网络请求字符串* @throws Exception*/public static String net(String strUrl, Map<String,Object> params,String method) throws Exception {HttpURLConnection conn = null;BufferedReader reader = null;String rs = null;try {StringBuffer sb = new StringBuffer();if(method==null || method.equals("GET")){strUrl = strUrl+"?"+urlencode(params);}URL url = new URL(strUrl);conn = (HttpURLConnection) url.openConnection();if(method==null || method.equals("GET")){conn.setRequestMethod("GET");}else{conn.setRequestMethod("POST");conn.setDoOutput(true);}conn.setRequestProperty("User-agent", userAgent);conn.setUseCaches(false);conn.setConnectTimeout(DEF_CONN_TIMEOUT);conn.setReadTimeout(DEF_READ_TIMEOUT);conn.setInstanceFollowRedirects(false);conn.connect();if (params!= null && method.equals("POST")) {try {DataOutputStream out = new DataOutputStream(conn.getOutputStream());out.writeBytes(urlencode(params));} catch (Exception e) {// TODO: handle exception}}InputStream is = conn.getInputStream();reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));String strRead = null;while ((strRead = reader.readLine()) != null) {sb.append(strRead);}rs = sb.toString();} catch (IOException e) {e.printStackTrace();} finally {if (reader != null) {reader.close();}if (conn != null) {conn.disconnect();}}return rs;}//将map型转为请求参数型public static String urlencode(Map<String,Object>data) {StringBuilder sb = new StringBuilder();for (Map.Entry<String,Object> i : data.entrySet()) {try {sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");} catch (UnsupportedEncodingException e) {e.printStackTrace();}}return sb.toString();}
}

此代码中包含了GET/POST的方法,其中wzQuery()这个方法里让你传入的发动机号和车架号都是后6位的,要注意一下,至于返回值神马样子请看API管方文档提供的信息:https://www.juhe.cn/docs/api/id/36。

怕你懒得点,给你来个截图:

返回值:

{"resultcode": "200","reason": "查询成功","result": {"province": "GD","city": "GD_JM","hphm": "赣DP2327","hpzl": "02","lists": [{"date": "2017-07-11 11:45:00","area": "港湾大道银坑村路口","act": "驾驶机动车在划有导向车道的路口,不按所需行进方向驶入导向车道,不按规定方向行驶的","code": "4404067900172059","fen": "2","wzcity": "广东珠海","money": "300","handled": "0","archiveno": "4404067900172059"},{"date": "2017-10-04 20:22:33","area": "番禺大道富华东路路口","act": "机动车通过有灯控路口时,不按所需行进方向驶入导向车道的","code": "4401267902030070","fen": "2","wzcity": "广东广州","money": "100","handled": "0","archiveno": "4401267902030070"},{"date": "2017-10-21 11:20:00","area": "广州绕城高速145公里200米","act": "驾驶中型以上载客载货汽车、危险物品运输车辆以外的其他机动车行驶超过规定时速10%未达20%的","code": "4406997901477224","fen": "3","wzcity": "广东佛山","money": "150","handled": "0","archiveno": "4406997901477224"},{"date": "2017-11-21 17:52:06","area": "广州市番禺区广场东路路段","act": "机动车违反禁令标志指示的","code": "4401267902177105","fen": "3","wzcity": "广东广州","money": "200","handled": "0","archiveno": "4401267902177105"},{"date": "2017-09-15 11:40:00","area": "广州市番禺区嘉胜路","act": "机动车违反规定停放、临时停车,妨碍其它车辆、行人通行的","code": "4401267901951920","fen": "0","wzcity": "广东广州","money": "200","handled": "0","archiveno": "4401267901951920"},{"date": "2017-10-03 22:03:00","area": "螺山路环村路路口","act": "通过路口遇停止信号时,停在停止线以内或路口内的","code": "4401267902027680","fen": "2","wzcity": "广东广州","money": "100","handled": "0","archiveno": "4401267902027680"},{"date": "2017-10-29 20:31:00","area": "桥南街南堤东路","act": "机动车违反规定停放、临时停车,妨碍其它车辆、行人通行的","code": "4401267902105566","fen": "0","wzcity": "广东广州","money": "200","handled": "0","archiveno": "4401267902105566"}]},"error_code": 0
}

这个接口需要的后6位发动机号截取代码一并给你

/*** * @Title: subStringByLength  * @Description: TODO  字符串按长度截取后几位 不符合规则返回null请注意判断* @param str 将要截取的字符串* @param subLength 截取长度* @author Iohannes* @date 2019年5月11日 下午2:20:29* @return String*/public static String subStringByLength(String str,int subLength) {if(!isNotEmpty(str)) {return null;}//字符串长度int strl = str.length();//字符串长度还没有穿进来的截取长度大则异常if(strl < subLength) {return null;}return str.substring(strl-subLength, strl);}

如果还有任何疑问可以随时评论,欢迎转载~

查询车辆违章记录→聚合数据相关推荐

  1. position 属性指定了元素的定位类型,查询车辆事故记录保险出险记录

    p.pos_fixed {position:fixed;top:30px;right:5px; } 维保记录查询这块,现在全国的4S店维修保养记录都是全部联网的,在任何一个角落都可以查询. 我们只要通 ...

  2. php查询车辆违章付费源码,全国交通违章查询

    { "status": "0", "msg": "ok", "result": { "da ...

  3. php查询车位系统代码,php车辆违章查询数据示例

    方便有车一族随时了解自己是否有过交通违章,避免因遗忘或逾期处理违章罚单而造成的不必要损失.本代码示例是基于聚合数据全国车辆违章查询API的调用,有需要的可以往下看. 使用前你需要: 一.引入封装好的请 ...

  4. 违章查询源码 php,全国车辆违章查询数据使用(PHP)

    简介 聚合数据全国车辆违章数据接口,目前已经支持300个左右的城市违章查询,已连接上万个APP.方便有车一族随时了解自己是否有过交通违章,避免因遗忘或逾期处理违章罚单而造成的不必要损失. 基于PHP的 ...

  5. 违章查询源码 php,php车辆违章查询数据示例

    方便有车一族随时了解自己是否有过交通违章,避免因遗忘或逾期处理违章罚单而造成的不必要损失.本代码示例是基于聚合数据全国车辆违章查询API的调用,有需要的可以往下看. 使用前你需要: 通过:https: ...

  6. 违章查询源码 php,php车辆违章查询数据详解

    聚合数据全国车辆违章数据接口,目前已经支持300个左右的城市违章查询,已连接上万个APP.本文介绍了php车辆违章查询数据示例,有需要的朋友可以来看一下. 方便有车一族随时了解自己是否有过交通违章,避 ...

  7. PHP聚合数据-全国车辆违章

    案例:点击这里查询全国车辆违章记录 只做了一个接口,以下代码参考聚合数据 https://www.juhe.cn/docs/api/id/36 一.引入封装好的请求类class.juhe.wz.php ...

  8. 全国车辆违章查询数据接口文档及demo

    简介 聚合数据全国车辆违章数据接口,目前已经支持300个左右的城市违章查询,已连接上万个APP.方便有车一族随时了解自己是否有过交通违章,避免因遗忘或逾期处理违章罚单而造成的不必要损失. API参考文 ...

  9. 违章查询源码 php,全国车辆违章查询API接口文档及demo

    简介 聚合数据全国车辆违章数据接口,目前已经支持300个左右的城市违章查询,已连接上万个APP.方便有车一族随时了解自己是否有过交通违章,避免因遗忘或逾期处理违章罚单而造成的不必要损失. 基于PHP的 ...

最新文章

  1. HDU5583 上海赛铜牌题
  2. (一)神经网络训练不起来怎么办:局部最小值(local minia)与鞍点(saddle point)
  3. java 性能检测工具 检测死锁等
  4. 白话AI:看懂深度学习真的那么难吗?初中数学,就用10分钟
  5. web文件管理系统_财务影像管理系统
  6. cent os mysql 内存_Cent OS – MySQL – 主从配置
  7. 20220104:力扣第274场周赛(下)
  8. 使用JasperReport+iReport进行Web报表开发
  9. Seq2Seq中的Attention
  10. memcached可视化工具 treeNMS通用的安装方法(windows、mac、linux)
  11. windows10下破解开机密码
  12. Unity 5.4 公开测试版发布:增强的视觉效果,更佳的性能表现
  13. 青果教务系统适配小爱课程表
  14. CHM 打开时提示 已取消到该网页的导航
  15. Chrome 插件下载、安装、加载正在开发的扩展程序和打包扩展程序
  16. win10菜单栏等底部状态栏打不开解决办法
  17. sql server 添加表注释、字段注释
  18. 爆料 | 解析阿里妈妈如何将深度学习应用在广告、推荐及搜索业务
  19. 分享3款好用的图片工具,你们快来收藏
  20. 全国计算机软件985专业排名,全国计算机软件专业大学排名TOP20,清华居然不是第一!...

热门文章

  1. 机器学习 数据的采集和清洗
  2. 用python如何把一个数字拆开再拼接上
  3. python有三种序列结构_Python 序列结构小练习
  4. 优秀jQuery插件
  5. 玻色量子CEO文凯出席首届CCF量子计算大会,分享量子计算加速药物研发新突破
  6. SourceTree修改Git账号密码
  7. 火影忍者OL手游怎么在电脑上玩 火影忍者OL安卓模拟器玩法教程
  8. Java基础学习——Java集合(九)Map接口、HashMap、LinkedHashMap实现类、TreeMap实现类
  9. 奥运18日看点:乒球体操优势明显 蹦床力争金牌突破
  10. win0计算机内存不足,Windows电脑提示内存不足的原因分析及解决办法