中控网的item_get接口是获取企业详情数据的核心接口,广泛应用于商业调研、客户管理、数据统计等场景。本攻略将从接口基础认知、对接准备、实操步骤、调试优化、进阶技巧到避坑指南,全方位拆解对接流程,帮助开发者快速上手并实现高效稳定调用。
一、接口核心认知:先搞懂 “是什么” 和 “能做什么”
1. 接口定位与作用
2. 核心参数与返回字段(核心必看)
(1)请求参数(必填 + 可选)
(2)返回核心字段(按业务场景分类)
3. 接口限制说明
二、对接前准备:3 步搞定前置条件
1. 注册与获取密钥
2. 技术环境准备
(1)支持的开发语言与框架
(2)必要工具
3. 明确业务需求
三、实操步骤:从调试到落地(以 Python 为例)
步骤 1:理解请求流程
步骤 2:签名生成规则(关键!避免调用失败)
示例(参数排序与签名拼接)
步骤 3:代码实现(Python 完整示例)
(1)依赖库
(2)完整代码
import requests
import hashlib
import time
from urllib.parse import urlencode
# 接口配置
APP_KEY = "你的appkey"
SECRET = "你的secret"
API_URL = "https://api.zhongkong.com/item_get" # 正式接口地址
def generate_sign(params):
"""生成签名"""
# 1. 按参数名ASCII升序排序
sorted_params = sorted(params.items(), key=lambda x: x[0])
# 2. 拼接参数字符串
param_str = urlencode(sorted_params) + f"&secret={SECRET}"
# 3. MD5加密(32位大写)
md5 = hashlib.md5()
md5.update(param_str.encode("utf-8"))
return md5.hexdigest().upper()
def get_company_detail(company_id=None, credit_code=None, company_name=None):
"""
调用item_get接口获取企业详情
:param company_id: 中控网企业ID
:param credit_code: 统一社会信用代码
:param company_name: 企业全称
:return: 解析后的企业详情字典
"""
# 1. 构建基础参数
params = {
"appkey": APP_KEY,
"timestamp": int(time.time() * 1000), # 毫秒级时间戳
"fields": "base_info,contact,license" # 按需指定返回字段
}
# 2. 添加查询标识(二选一,优先级:company_id > credit_code > company_name)
if company_id:
params["company_id"] = company_id
elif credit_code:
params["credit_code"] = credit_code
elif company_name:
params["company_name"] = company_name
else:
raise ValueError("必须传入company_id、credit_code或company_name中的一个")
# 3. 生成签名
params["sign"] = generate_sign(params)
try:
# 4. 发送GET请求(推荐GET,POST也支持,参数传递方式一致)
response = requests.get(API_URL, params=params, timeout=10)
# 5. 解析响应
result = response.json()
# 6. 处理响应状态
if result.get("code") == 200:
# 成功:返回企业详情
return result.get("data", {})
else:
# 失败:抛出异常(包含错误码和描述)
raise Exception(f"接口调用失败:错误码{result.get('code')},描述{result.get('msg')}")
except requests.exceptions.RequestException as e:
raise Exception(f"网络异常:{str(e)}")
except Exception as e:
raise Exception(f"处理异常:{str(e)}")
# 调用示例
if __name__ == "__main__":
try:
# 方式1:通过企业ID查询(推荐)
company_detail = get_company_detail(company_id="comp_1008611")
print("企业基础信息:", company_detail.get("base_info"))
print("联系方式:", company_detail.get("contact"))
# 方式2:通过信用代码查询
# company_detail = get_company_detail(credit_code="91110105MA01C4JQ3C")
# 方式3:通过企业名称查询
# company_detail = get_company_detail(company_name="北京XX科技有限公司")
except Exception as e:
print("查询失败:", str(e))