java对接天眼查接口,天眼查提供案例方法过期最新案例

1、先了解天眼查是用来做什么的

天眼查,是中国领先的商业查询平台 ,已收录全国近3亿家社会实体信息,300多种维度信息及时更新 。截至2020年,天眼查用户覆盖超3亿 ,长期稳居行业第一。2021年3月,旗下可信企业服务平台天眼企服升级发布,天眼查正在加速构建以“查公司、开公司”为核心的的天眼生态。(内容来自百度百科)

2、确定账号

确定账号这一步非常的重要,这个账号必须要已经和天眼查官方那边进行合作了,天眼查官方会根据你们公司提供的业务需求信息,提供你们需要的接口。每个账号都会有不同的官方特制的token,这个token就是你访问天眼查接口的关键。

3、登录账号,找到数据接口,找到token,调用示例

登录账号以后进入首页进入数据接口
在这里插入图片描述
这里面是这个账号已开通的接口,我这里随便点一个进去
在这里插入图片描述
进来后里面有接口地址,接口信息这里点击测试API进去获取我们的token如下下图
在这里插入图片描述在这里插入图片描述
这里简单介绍下这五块的内容
在这里插入图片描述

上图里面一共有五大块,接口信息、错误代码、示例代码、接口文档、升级版本。
这里只介绍下前三块内容,后面二块可以自己去了解下。
1、接口信息:包含接口地址,接口参数,请求方式,接口返回类型案例。
2、错误代码:这个里面是你调用这个接口返回的错误代码,可以根据错误代码做异常处理。
3、示例代码:(java)

在这里插入图片描述
这里将上图的官方给的Demo复制出来,如下图案例,这里面使用的方法很多都划线了,java不推荐使用了,说不定哪天就下架了!
在这里插入图片描述
优化后的方法:

import org.apache.commons.httpclient.HttpStatus;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;

import java.io.UnsupportedEncodingException;

/**
 * @PACKAGE_NAME: com.eascs.scm.cms.controller
 * @NAME: Demo
 * @USER: MrWang
 * @DATE: 2022/3/28
 **/
public class Demo {

    /**
     * 主函数
     * @param args
     */
    public static void main(String[] args) throws UnsupportedEncodingException {

        // token可以从 数据中心 -> 我的接口 中获取
        String token = "您的token";
        String url = "http://open.api.tianyancha.com/****/***/**/****/normal?keyword=中航重机股份有限公司";
        System.out.println(getMessageByUrlToken(url, token));
    }

    /**
     * @param path 对⽅或第三⽅提供的路径
     * @return
     */
    public static String getMessageByUrlToken(String url,String token){
        String result="";
        try {
            // 根据地址获取请求
            HttpGet request = new HttpGet(url);//这⾥发送get请求
            // 设置请求头信息
            request.setHeader("Authorization", token);//这里我定义的token定义的全局变量
            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;
    }


}

成功案例:

@Data
public class SkyeyeVo implements Serializable {

    @ApiModelProperty(value = "搜索关键字(公司名称、公司id、注册号或社会统一信用代码)")
    private String keyWork;

    @ApiModelProperty(value = "每页条数(默认20条,最大20条)")
    private Integer pageSize;

    @ApiModelProperty(value = "当前页数(默认第1页)")
    private Integer pageNum;

    @ApiModelProperty(value = "年份(默认所有年份)")
    private String year;
}

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.eascs.scm.cms.model.vo.SkyeyeVo;
import io.specialrooter.message.MessageResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.springframework.web.bind.annotation.*;

/**
 * @PACKAGE_NAME: com.eascs.scm.cms.controller
 * @NAME: SkyeyeController
 * @USER: MrWang
 * @DATE: 2022/3/25
 **/
@Api(tags = "天眼查接口提供")
@RestController
@Slf4j
@RequestMapping("/cms/skyeye")
public class SkyeyeController {

    //天眼查访问token
    private static final String token = "保密";

    //(天眼查)企业基本信息查询
    private static final String CORPORATE_URL = "保密?keyword=";

    //(天眼查)企业股东查询
    private static final String SHAREHOLDER_URL = "保密?keyword=";

    //(天眼查)供应商查询
    private static final String SUPPLIER_URL = "保密?keyword=";

    //(天眼查)客户查询
    private static final String CLIENT_URL = "保密?keyword=";

    @ApiOperation(value = "天眼查,企业基本信息查询")
    @PostMapping("/getSkyeyeCorporateInformation")
    public MessageResponse<Object> getSkyeyeCorporateInformation(@RequestBody SkyeyeVo skyeyeVo){
        log.info("##天眼查,查询企业信息参数={}",JSON.toJSONString(skyeyeVo));
        String messageByUrlToken = getMessageByUrlToken(this.getUrl(CORPORATE_URL,skyeyeVo));
        JSONObject jsonObject = JSONObject.parseObject(messageByUrlToken);
        log.info("##天眼查,查询企业信息返回参数={}", JSON.toJSONString(jsonObject));
        return MessageResponse.success(jsonObject);
    }

    @ApiOperation(value = "天眼查,企业股东查询")
    @PostMapping("/getShareholderInfo")
    public MessageResponse<Object> getShareholderInfo(@RequestBody SkyeyeVo skyeyeVo){
        log.info("##天眼查,企业股东查询={}",JSON.toJSONString(skyeyeVo));
        String messageByUrlToken = getMessageByUrlToken(this.getUrl(SHAREHOLDER_URL,skyeyeVo));
        JSONObject jsonObject = JSONObject.parseObject(messageByUrlToken);
        log.info("##天眼查,企业股东查询返回参数={}", JSON.toJSONString(jsonObject));
        return MessageResponse.success(jsonObject);
    }

    @ApiOperation(value = "天眼查,供应商查询")
    @PostMapping("/getSupplierInfo")
    public MessageResponse<Object> getSupplierInfo(@RequestBody SkyeyeVo skyeyeVo){
        log.info("##天眼查,供应商查询={}",JSON.toJSONString(skyeyeVo));
        String messageByUrlToken = getMessageByUrlToken(this.getUrl(SUPPLIER_URL,skyeyeVo));
        JSONObject jsonObject = JSONObject.parseObject(messageByUrlToken);
        log.info("##天眼查,供应商查询返回参数={}", JSON.toJSONString(jsonObject));
        return MessageResponse.success(jsonObject);
    }

    @ApiOperation(value = "天眼查,客户查询")
    @PostMapping("/getClientInfo")
    public MessageResponse<Object> getClientInfo(@RequestBody SkyeyeVo skyeyeVo){
        log.info("##天眼查,客户查询={}",JSON.toJSONString(skyeyeVo));
        String messageByUrlToken = getMessageByUrlToken(this.getUrl(CLIENT_URL,skyeyeVo));
        JSONObject jsonObject = JSONObject.parseObject(messageByUrlToken);
        log.info("##天眼查,客户查询返回参数={}", JSON.toJSONString(jsonObject));
        return MessageResponse.success(jsonObject);
    }

    /**
     * 拼接URL,注意前面定义的url后面拼接的参数,因为每个接口的参数都是不同的但是企业的标准是相同的(keyWork)
     * @param url
     * @param skyeyeVo
     * @return
     */
    public String getUrl(String url,SkyeyeVo skyeyeVo){
        if(ObjectUtils.isNotEmpty(skyeyeVo.getKeyWork())){
            url += skyeyeVo.getKeyWork();
        }
        if(ObjectUtils.isNotEmpty(skyeyeVo.getPageSize())){
            url += "&pageSize=" + skyeyeVo.getPageSize();
        }
        if(ObjectUtils.isNotEmpty(skyeyeVo.getPageNum())){
            url += "&pageNum=" + skyeyeVo.getPageNum();
        }
        if(ObjectUtils.isNotEmpty(skyeyeVo.getYear())){
            url += "&year=" + skyeyeVo.getYear();
        }
        return url;
    }

    /**
     * @param path 对⽅或第三⽅提供的路径
     * @return
     */
    public String getMessageByUrlToken(String path){
        String result="";
        try {
            // 根据地址获取请求
            HttpGet request = new HttpGet(path);//这⾥发送get请求
            // 获取当前客户端对象
            request.setHeader("Authorization", token);
            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;
    }

}

这里调用企业基本信息接口执行结果:
在这里插入图片描述
到这里基本这个接口已经OK了!哪里有不好的欢迎补充谢谢。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值