来源:互联网 更新时间:2026-06-11 07:24

京东开放平台给开发者留了个不错的接口——商品详情查询。简单来说,只要有一个SKUID,就能把商品的标题、价格、高清图、促销信息一股脑儿全拿回来。在如今电商数据抓得紧、反应要快的环境下,这个接口确实省事。不过别着急,用之前得先申请权限、拿到认证密钥,这是硬门槛。
先说说它的几个真本事。
批量查询是亮点:一次最多能查20个SKU,效率瞬间拉满。据市场调研反馈,用批量查询功能,数据获取时间能缩短70%左右,特别适合那种需要大量商品对比分析的场景。
数据格式方面,返回的是标准的JSON,主流编程语言几乎都能直接上手解析,开发成本自然也就降下来了。
安全这块也考虑得很周全:采用签名验证机制,数据在传输过程中不会被篡改或攻击,开发者和平台都省心。再加上全面支持HTTPS协议,在当前网络环境下,这就是给数据加了把加密锁。
先看看Ja va版本怎么写的。代码结构很清晰,核心就是构造参数、生成签名、发送请求。注意签名算法用的是MD5,拼接时要严格按照参数排序来,别搞错顺序。
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.codec.digest.DigestUtils;
import ja va.io.BufferedReader;
import ja va.io.InputStreamReader;
import ja va.net.HttpURLConnection;
import ja va.net.URL;
import ja va.util.HashMap;
import ja va.util.Map;
import ja va.util.TreeMap;
public class JdProductApi {
private static final String API_URL = "https://api.jd.com/routerjson";
private static final String VERSION = "1.0";
public static String queryProductDetail(long skuId, String appKey, String appSecret) {
try {
// 精心构造请求参数
Map params = new TreeMap<>();
params.put("method", "jd.union.open.goods.detail.query");
params.put("app_key", appKey);
params.put("timestamp", System.currentTimeMillis());
params.put("v", VERSION);
params.put("format", "json");
// 构建商品请求参数
JSONObject goodsReq = new JSONObject();
goodsReq.put("skuIds", new long[]{skuId});
params.put("goodsReq", goodsReq);
// 严格生成签名
String sign = generateSign(params, appSecret);
params.put("sign", sign);
// 准确发送请求
URL url = new URL(API_URL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.getOutputStream().write(JSON.toJSONString(params).getBytes());
// 高效处理响应
BufferedReader reader = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
return response.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
private static String generateSign(Map params, String appSecret) {
StringBuilder sb = new StringBuilder(appSecret);
for (Map.Entry entry : params.entrySet()) {
sb.append(entry.getKey()).append(entry.getValue());
}
sb.append(appSecret);
return DigestUtils.md5Hex(sb.toString()).toUpperCase();
}
}
Python版本更简洁,用requests库一行就能搞定请求。签名逻辑跟Ja va完全一样,只是语法换成了Python风格。
import hashlib
import time
import json
import requests
class JdProductApi:
API_URL = "https://api.jd.com/routerjson"
VERSION = "1.0"
@staticmethod
def query_product_detail(sku_id, app_key, app_secret):
params = {
"method": "jd.union.open.goods.detail.query",
"app_key": app_key,
"timestamp": int(time.time() * 1000),
"v": JdProductApi.VERSION,
"format": "json",
"goodsReq": {"skuIds": [sku_id]}
}
# 严谨生成签名
sign = JdProductApi.generate_sign(params, app_secret)
params["sign"] = sign
# 可靠发送请求
response = requests.post(
JdProductApi.API_URL,
json=params,
headers={"Content-Type": "application/json"}
)
return response.json()
@staticmethod
def generate_sign(params, app_secret):
param_str = app_secret
for key in sorted(params.keys()):
param_str += f"{key}{params[key]}"
param_str += app_secret
return hashlib.md5(param_str.encode()).hexdigest().upper()
请求成功后,返回的数据长这样(JSON格式):
{
"code": 0,
"message": "success",
"data": {
"skuId": 1234567,
"skuName": "示例商品名称",
"price": 299.00,
"imageList": ["http://img1.jpg", "http://img2.jpg"],
"brandName": "示例品牌",
"category": "电子产品",
"shopId": 10001,
"shopName": "官方旗舰店",
"promotionList": [
{
"promotionId": 1,
"promotionName": "满299减30",
"startTime": "2025-05-01 00:00:00",
"endTime": "2025-05-31 23:59:59"
}
]
}
}
最后提几个容易踩坑的点:
以上代码给出了Ja va和Python两种实现,大家可以根据技术栈选合适的版本。实际使用时,记得把appKey和appSecret替换成自己的值,并且补上完善的错误处理逻辑。这样一来,基本就能稳稳拿到京东商品的详细数据了。
《Off Campus》第二季官宣:这对CP还在,但不再是主角
币安Binance虚拟货币交易平台 币安官方APP安卓苹果下载入口
客单价碾压宝马奥迪!极氪5月交付新车34377辆:连续4个月双增长
HBO 奇幻剧《龙之家族》第三季定档 6 月 22 日,最终预告片曝光喉道海战
archiveofourown 实战指南:常见用法整理
折后价近千元 澳洲一店主将真老鼠缝到内裤上当时尚单品卖
帅气继父网名女生可爱英文(精选100个)
帅到极致的网名女生霸气(精选100个)
如何在夸克浏览器中开启网页视频的倍速播放功能?
作家助手如何上传自制封面 作家助手如何设置小说的封面
DOTA2 TI时隔七年重返上海!门票6月10日开抢,国服享受优先购买!
韩漫小少爷网名大全女生(精选100个)
网络热词聊污是什么意思
电视剧《小欢喜》剧情介绍
欧易OKX官方网站直达入口 2026欧易官方App安卓版v7.1.0下载安装
有寓意的易经网名男生(精选100个)
小众游戏抖音网名男生(精选100个)
电影《遁甲门之消失的公主》剧情介绍
美国市场:股票相对债券的风险溢价正在消失
全链网:黄金价格因美元的走强及利率担忧而下跌
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc