java调用公共数据接口:上海市数据公共开放平台
前言
第一篇中调用了webxml里的QQ在线状态查询的接口,调用方式是http get。但是在日常工作中,会遇到只支持soap接口的调用方式,本文以上海市公共数据开放平台中的接口为案例,给大家作为参考。博主以拿到数据为目标,有更好的方法,欢迎大家评论!
- 后续在项目中会逐步添加以下数据接口:
- 上海市公共数据开放平台
- 阿里云云市场接口(免费+收费)
- 苏州市公共数据平台
- 等等…
为方便以后添加新内容,文章中的步骤比较繁琐,比较着急的同学直接去impl看!
一、找个接口作为案例
我们访问: https://data.sh.gov.cn/可以看到有很多公共接口,我们选一个简单的接口作为案例:
二、查看文档
1.查看接口文档
先找到接口说明与相关文档
2.确认接口地址与参数
打开http://180.168.211.29:8080/jxwjk/services/JXWJK?wsdl,拉到最后。
结合上面文档的内容,我们可以确认:
1.address:http://180.168.211.29:8080/jxwjk/services/JXWJK
2.服务名称:JXWJK
3.方法名(下载的文档里面有):getVwVehicle
3.参数(下载的文档里面有):
hphm:号牌号码(支持模糊查询)
clpp1:中文品牌(支持模糊查询)
zt:状态(支持模糊查询)
fzjg:发证机关(支持模糊查询)
4.返回值(下载的文档里面有):hphm、hpzl、clpp1、zt、fzjg
三、编码(找代码直接跳这里!)
确认好接口内容,新建一个springboot项目,万事俱备,开始敲代码!
项目基础结构在第一篇里面已经创建好了,这边不做介绍。
1.先创建一个返回数据的实体类
- VehicleBaseInfo
- lombok介绍看这里
package com.example.demo.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
/**
* @Author: pzc
* @Date: 2020-12-23 17:57
* @Description: *
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class VehicleBaseInfo {
private String hphm;
private String hpzl;
private String clpp1;
private String zt;
private String fzjg;
}
2.编写service和serviceImpl(按正规写法来)
- VehicleInfoService
package com.example.demo.service;
import com.example.demo.entity.VehicleBaseInfo;
import org.jdom2.JDOMException;
import java.io.IOException;
import java.util.List