京东提供了丰富的API接口,供开发者获取商品详情、关键词搜索等功能。以下是关于京东API商品详情接口和关键词搜索接口的调用及返回示例的简要说明。
1. 商品详情接口
接口功能:通过商品ID获取商品的详细信息。
请求方式:GET
请求参数:
-
method:接口方法名,固定为 jd.union.open.goods.query。
-
access_token:访问令牌。
-
app_key:应用的唯一标识。
-
v:API版本号,固定为 1.0。
-
sign_method:签名方法,固定为 md5。
-
timestamp:请求时间戳,格式为 YYYY-MM-DD HH:MM:SS。
-
format:返回格式,固定为 json。
-
param_json:请求参数,JSON格式,包含 skuIds(商品ID)。
请求示例:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.PrintWriter;
import java.net.URLConnection;
public class Example {
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
public static JSONObject postRequestFromUrl(String url, String body) throws IOException, JSONException {
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
PrintWriter out = new PrintWriter(conn.getOutputStream());
out.print(body);
out.flush();
InputStream instream = conn.getInputStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
instream.close();
}
}
public static JSONObject getRequestFromUrl(String url) throws IOException, JSONException {
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
InputStream instream = conn.getInputStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
instream.close();
}
}
public static void main(String[] args) throws IOException, JSONException {
// 请求示例 url 默认请求参数已经URL编码处理
String url = "https://api-gw.fan-b.com/jd/item_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=10335871600&domain_type=jd";
JSONObject json = getRequestFromUrl(url);
System.out.println(json.toString());
}
}
返回示例:
{
"item": {
"num_iid": "100126351037",
"title": "京东鲜花爱丽丝泡泡鲜切花云南鲜花家庭插花爱丽丝泡泡10枝源头直发",
"desc_short": "",
"price": "30.90",
"total_price": "",
"suggestive_price": "",
"orginal_price": "49.00",
"nick": "京东鲜花自营专区",
"num": "99",
"detail_url": "https://item.jd.com/100126351037.html",
"pic_url": "http://m.360buyimg.com/mobilecms/s1080x1080_jfs/t1/237316/6/21934/216236/672351e2F577e6517/05e435e41704c438.jpg!q70.jpg.webp",
"sku_pic": "http://m.360buyimg.com/mobilecms/s1080x1080_jfs/t1/237316/6/21934/216236/672351e2F577e6517/05e435e41704c438.jpg!q70.jpg.webp",
"brand": "京东鲜花",
"brandId": "777210",
"rootCatId": "",
"cid": "12473",
"desc": "",
"item_imgs": [
{
"url": "http://m.360buyimg.com/mobilecms/s1080x1080_jfs/t1/237316/6/21934/216236/672351e2F577e6517/05e435e41704c438.jpg!q70.jpg.webp"
},
{
"url": "http://m.360buyimg.com/mobilecms/s1080x1080_jfs/t1/130400/14/49841/200051/672351e1F7586d48e/017bd81ed5b931e0.jpg!q70.jpg.webp"
},
{
"url": "http://m.360buyimg.com/mobilecms/s1080x1080_jfs/t1/163105/34/50182/163954/672351deFf0c2659c/8656066ad673967b.jpg!q70.jpg.webp"
},
{
"url": "http://m.360buyimg.com/mobilecms/s1080x1080_jfs/t1/213329/6/45782/224845/672351deFc2298b4c/3b19b7f988852b73.jpg!q70.jpg.webp"
}
],
"item_weight": "",
"post_fee": "",
"freight": "",
"express_fee": "",
"ems_fee": "",
"shipping_to": "",
"video": {
"url": null
},
"sample_id": "",
"props_name": "1:1:规格:【买20枝送10枝】随机色玫瑰20枝送10枝尤加利;1:2:规格:玫瑰混搭小花束;1:3:规格:玫瑰百合混搭小花束;1:4:规格:玫瑰向日葵混搭小花束;1:5:规格:多头泡泡单色随机10枝;1:6:规格:多头泡泡混搭随机10枝;1:7:规格:多头橙芭比泡泡10枝;1:8:规格:多头折射泡泡10枝;1:9:规格:多头黄泡泡10枝;1:10:规格:多头红泡泡10枝;1:11:规格:多头爱丽丝泡泡10枝;1:12:规格:多头果汁阳台泡泡10枝;1:13:规格:多头巧克力泡泡10枝",
"prop_imgs": {
"prop_img": []
},
"props_imgs": {
"prop_img": [
{
"properties": "1:1",
"url": ""
},
{
"properties": "1:2",
"url": ""
},
{
"properties": "1:3",
"url": ""
},
{
"properties": "1:4",
"url": ""
},
{
"properties": "1:5",
"url": ""
},
{
"properties": "1:6",
"url": ""
},
{
"properties": "1:7",
"url": ""
},
{
"properties": "1:8",
"url": ""
},
{
"properties": "1:9",
"url": ""
},
{
"properties": "1:10",
"url": ""
},
{
"properties": "1:11",
"url": ""
},
{
"properties": "1:12",
"url": ""
},
{
"properties": "1:13",
"url": ""
}
]
},
"property_alias": "1:1:【买20枝送10枝】随机色玫瑰20枝送10枝尤加利;1:2:玫瑰混搭小花束;1:3:玫瑰百合混搭小花束;1:4:玫瑰向日葵混搭小花束;1:5:多头泡泡单色随机10枝;1:6:多头泡泡混搭随机10枝;1:7:多头橙芭比泡泡10枝;1:8:多头折射泡泡10枝;1:9:多头黄泡泡10枝;1:10:多头红泡泡10枝;1:11:多头爱丽丝泡泡10枝;1:12:多头果汁阳台泡泡10枝;1:13:多头巧克力泡泡10枝",
"props": [
{
"name": "品牌:",
"value": "京东鲜花"
},
{
"name": "商品名称:",
"value": "京东鲜花爱丽丝泡泡10枝"
},
{
"name": "花头数量:",
"value": "多头"
},
{
"name": "国产/进口:",
"value": "国产"
},
{
"name": "是否醒花:",
"value": "需要醒花"
},
{
"name": "开放程度:",
"value": "微露花芯(2度)"
}
],
"total_sold": "",
"skus": [
{
"price": "30.90",
"orginal_price": "49.00",
"properties": "1:1:【买20枝送10枝】随机色玫瑰20枝送10枝尤加利",
"properties_name": "1:1:规格:【买20枝送10枝】随机色玫瑰20枝送10枝尤加利",
"quantity": "99",
"sku_id": "100116243996",
"sku_url": "https://item.jd.com/100116243996.html"
},
{
"price": "30.90",
"orginal_price": "49.00",
"properties": "1:2:玫瑰混搭小花束",
"properties_name": "1:2:规格:玫瑰混搭小花束",
"quantity": "99",
"sku_id": "100127411315",
"sku_url": "https://item.jd.com/100127411315.html"
},
{
"price": "30.90",
"orginal_price": "49.00",
"properties": "1:3:玫瑰百合混搭小花束",
"properties_name": "1:3:规格:玫瑰百合混搭小花束",
"quantity": "99",
"sku_id": "100127411317",
"sku_url": "https://item.jd.com/100127411317.html"
},
{
"price": "30.90",
"orginal_price": "49.00",
"properties": "1:4:玫瑰向日葵混搭小花束",
"properties_name": "1:4:规格:玫瑰向日葵混搭小花束",
"quantity": "99",
"sku_id": "100155425904",
"sku_url": "https://item.jd.com/100155425904.html"
},
{
"price": "30.90",
"orginal_price": "49.00",
"properties": "1:5:多头泡泡单色随机10枝",
"properties_name": "1:5:规格:多头泡泡单色随机10枝",
"quantity": "99",
"sku_id": "100127411345",
"sku_url": "https://item.jd.com/100127411345.html"
},
{
"price": "30.90",
"orginal_price": "49.00",
"properties": "1:6:多头泡泡混搭随机10枝",
"properties_name": "1:6:规格:多头泡泡混搭随机10枝",
"quantity": "99",
"sku_id": "100155425892",
"sku_url": "https://item.jd.com/100155425892.html"
},
{
"price": "30.90",
"orginal_price": "49.00",
"properties": "1:7:多头橙芭比泡泡10枝",
"properties_name": "1:7:规格:多头橙芭比泡泡10枝",
"quantity": "99",
"sku_id": "100153834042",
"sku_url": "https://item.jd.com/100153834042.html"
},
{
"price": "30.90",
"orginal_price": "49.00",
"properties": "1:8:多头折射泡泡10枝",
"properties_name": "1:8:规格:多头折射泡泡10枝",
"quantity": "99",
"sku_id": "100153834026",
"sku_url": "https://item.jd.com/100153834026.html"
},
{
"price": "30.90",
"orginal_price": "49.00",
"properties": "1:9:多头黄泡泡10枝",
"properties_name": "1:9:规格:多头黄泡泡10枝",
"quantity": "99",
"sku_id": "100153834018",
"sku_url": "https://item.jd.com/100153834018.html"
},
{
"price": "30.90",
"orginal_price": "49.00",
"properties": "1:10:多头红泡泡10枝",
"properties_name": "1:10:规格:多头红泡泡10枝",
"quantity": "99",
"sku_id": "100126351047",
"sku_url": "https://item.jd.com/100126351047.html"
},
{
"price": "30.90",
"orginal_price": "49.00",
"properties": "1:11:多头爱丽丝泡泡10枝",
"properties_name": "1:11:规格:多头爱丽丝泡泡10枝",
"quantity": "99",
"sku_id": "100126351037",
"sku_url": "https://item.jd.com/100126351037.html"
},
{
"price": "30.90",
"orginal_price": "49.00",
"properties": "1:12:多头果汁阳台泡泡10枝",
"properties_name": "1:12:规格:多头果汁阳台泡泡10枝",
"quantity": "99",
"sku_id": "100126351035",
"sku_url": "https://item.jd.com/100126351035.html"
},
{
"price": "30.90",
"orginal_price": "49.00",
"properties": "1:13:多头巧克力泡泡10枝",
"properties_name": "1:13:规格:多头巧克力泡泡10枝",
"quantity": "99",
"sku_id": "100126351039",
"sku_url": "https://item.jd.com/100126351039.html"
}
],
"seller_id": "",
"sales": "",
"shop_id": 1000344190,
"_ddf": "fb",
"props_list": {
"1:1": "规格:【买20枝送10枝】随机色玫瑰20枝送10枝尤加利",
"1:2": "规格:玫瑰混搭小花束",
"1:3": "规格:玫瑰百合混搭小花束",
"1:4": "规格:玫瑰向日葵混搭小花束",
"1:5": "规格:多头泡泡单色随机10枝",
"1:6": "规格:多头泡泡混搭随机10枝",
"1:7": "规格:多头橙芭比泡泡10枝",
"1:8": "规格:多头折射泡泡10枝",
"1:9": "规格:多头黄泡泡10枝",
"1:10": "规格:多头红泡泡10枝",
"1:11": "规格:多头爱丽丝泡泡10枝",
"1:12": "规格:多头果汁阳台泡泡10枝",
"1:13": "规格:多头巧克力泡泡10枝"
},
"seller_info": {
"nick": "京东鲜花自营专区",
"city": "",
"level": "",
"rate": "",
"score": 0,
"delivery_score": "",
"item_score": "",
"shop_type": "",
"user_num_id": "",
"sid": 1000344190,
"title": "",
"zhuy": "https://mall.jd.com/index-1000344190.html",
"shop_name": ""
},
"props_img": [],
"shop_item": [],
"relate_items": []
},
"secache": "e4be299217ffd4296ed5d43e9f8a0554",
"secache_time": 1733451980,
"secache_date": "2024-12-06 10:26:20",
"translate_status": "",
"translate_time": 0,
"language": {
"default_lang": "cn",
"current_lang": "cn"
},
"error": "",
"reason": "",
"error_code": "0000",
"cache": 0,
"api_info": "today:11 max:5000 all[23=11+5+7];expires:2025-12-18",
"execution_time": "7.124",
"server_time": "Beijing/2024-12-06 10:26:20",
"client_ip": "106.6.37.210",
"call_args": [
"100126351037"
],
"api_type": "jd",
"translate_language": "zh-CN",
"translate_engine": "baidu",
"server_memory": "3.31MB",
"request_id": "3.675260c5399d0",
"last_id": "3798001718"
}
3. 调用步骤
-
注册京东联盟账号:首先需要在京东联盟平台注册账号并创建应用,获取 app_key 和 app_secret。
-
获取Access Token:通过OAuth2.0授权流程获取 access_token。
-
构造请求:根据接口文档构造请求URL和参数。
-
发送请求:使用HTTP客户端发送请求。
-
处理响应:解析返回的JSON数据,获取所需信息。
4. 注意事项
-
签名验证:京东API要求对请求进行签名验证,确保请求的安全性。
-
频率限制:京东API对调用频率有限制,需注意不要超过限制。
-
错误处理:在调用API时,可能会遇到各种错误,需根据返回的错误码进行相应的处理。
5. 参考文档
通过以上步骤,可以成功调用京东API获取商品详情和进行关键词搜索。