Java项目对接天眼查

Java项目对接天眼查

天眼查接口以及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
	 */
	@Override
	public 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

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值