Java项目对接天眼查
文章目录
- Java项目对接天眼查
- 天眼查接口以及token获取
- 1、登录天眼查开放平台
- 2、找到数据接口,找到token,调用示例
- Java代码以及返回值
- 1、config
- 2、controller层
- 3、service层
- 4、实体类
- 4、测试结果
- 总结
天眼查接口以及token获取
1、登录天眼查开放平台
天眼查开放平台地址天眼查开放平台
进入之后点击有上方的登录注册,输入自己的账号密码进行登录
2、找到数据接口,找到token,调用示例
登录账号以后进入首页进入数据接口
这里面是所以的接口,因为项目需要,我这边选择搜索接口
进来后里面有接口地址,接口信息这里点击测试API进去获取我们的token如下下图。
Java代码以及返回值
1、config
package com.readao.myinfo.config;import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;@Configuration
@Data
public class TianYanChaConfig {@Value("${tianyancha.token}")private String token;@Value("${tianyancha.url}")private String url;}
2、controller层
@GetMapping("/getCorporateInformation")@ApiOperationSupport(order = 5)@ApiImplicitParams({@ApiImplicitParam(name = "current", value = "当前页", paramType = "query", dataType = "int"),@ApiImplicitParam(name = "size", value = "每页的数量", paramType = "query", dataType = "int"),@ApiImplicitParam(name = "keyWork", value = "搜索关键字(公司名称或社会统一信用代码)", paramType = "query", dataType = "String")})@ApiOperation(value = "天眼查,企业基本信息查询", notes = "传入条件")public R<IPage<TeamMiddle>> getCorporateInformation(Long current, Long size, String keyWork){IPage<TeamMiddle> teamMiddleIPage = teamMiddleService.getCorporateInformation(current, size, keyWork);return R.data(teamMiddleIPage);}
3、service层
/*** (天眼查)企业基本信息查询* @param pageNum 当前页* @param pageSize 每页多少条* @param keyWork 搜索关键字* @return*/@Overridepublic IPage<TeamMiddle> getCorporateInformation(Long pageNum, Long pageSize, String keyWork) {// 调用天眼查数据查询接口String messageByUrlToken = getMessageByUrlToken(this.getUrl(tianYanChaConfig.getUrl() + "?word=",keyWork,pageSize,pageNum));// 转换数据格式JSONObject jsonObject = JSONObject.parseObject(messageByUrlToken);// 获取数据总条数Long total = jsonObject.getJSONObject("result").getLong("total");// 获取数据信息List<TeamMiddle> teamMiddleList = (List<TeamMiddle>)jsonObject.getJSONObject("result").get("items");// 创建返回值对象IPage<TeamMiddle> teamMiddleIPage = new Page<>();// 填入返回值数据teamMiddleIPage.setCurrent(pageNum);teamMiddleIPage.setSize(pageSize);teamMiddleIPage.setTotal(total);teamMiddleIPage.setRecords(teamMiddleList);return teamMiddleIPage;}/*** 拼接URL,注意前面定义的url后面拼接的参数,因为每个接口的参数都是不同的但是企业的标准是相同的(keyWork)* @param url* @return*/public String getUrl(String url,String keyWork, Long pageSize, Long pageNum){if(ObjectUtil.isNotEmpty(keyWork)){url += keyWork;}else {// 自定义异常处理throw new ServiceException("搜索条件不能为空!!!");}if(ObjectUtil.isNotEmpty(pageSize)){url += "&pageSize=" + pageSize;}if(ObjectUtil.isNotEmpty(pageNum)){url += "&pageNum=" + pageNum;}return url;}/*** @param path 对⽅或第三⽅提供的路径* @return*/public String getMessageByUrlToken(String path){String result="";try {// 根据地址获取请求HttpGet request = new HttpGet(path);//这⾥发送get请求// 获取当前客户端对象request.setHeader("Authorization", tianYanChaConfig.getToken());CloseableHttpClient httpClient = HttpClientBuilder.create().build();// 通过请求对象获取响应对象HttpResponse response = httpClient.execute(request);// 判断⽹络连接状态码是否正常(0--200都数正常)if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {result = EntityUtils.toString(response.getEntity(),"utf-8");}} catch (Exception e) {// TODO Auto-generated catch block e.printStackTrace();e.printStackTrace();}return result;}
4、实体类
package com.xxx.xxxx.entity;import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;import java.util.Date;@Data
public class TeamMiddle {private static final long serialVersionUID = 1L;/*** 主键id*/private Long id;/*** 公司名*/private String name;/*** 统一社会信用代码*/private String creditCode;/*** 注册号*/private String regNumber;/*** 经营状态*/private String regStatus;/*** 成立日期*/private Date estiblishTime;/*** 注册资本*/private String regCapital;/*** 机构类型-1:公司;2:香港企业;3:社会组织;4:律所;5:事业单位;6:基金会;7-不存在法人、注册资本、统一社会信用代码、经营状态;8:台湾企业;9-新机构*/private Integer companyType;/*** 组织机构代码*/private String orgNumber;/*** 1-公司 2-人*/private Integer type;/*** 省份*/private String base;/*** 法人*/private String legalPersonName;/*** 匹配原因*/private String matchType;
}
4、测试结果
总结
例如:以上就是我自己的实例,有什么不足请大家提出。
注:本文基于博客java对接天眼查接口,天眼查提供案例方法过期最新案例
以及个人使用过程中遇到的问题
参考文献:https://blog.csdn.net/adminwxc/article/details/123793608