京东API商品详情接口丨调用及返回示例

397 阅读7分钟

京东提供了丰富的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. 调用步骤

  1. 注册京东联盟账号:首先需要在京东联盟平台注册账号并创建应用,获取 app_key 和 app_secret。

  2. 获取Access Token:通过OAuth2.0授权流程获取 access_token。

  3. 构造请求:根据接口文档构造请求URL和参数。

  4. 发送请求:使用HTTP客户端发送请求。

  5. 处理响应:解析返回的JSON数据,获取所需信息。

4. 注意事项

  • 签名验证:京东API要求对请求进行签名验证,确保请求的安全性。

  • 频率限制:京东API对调用频率有限制,需注意不要超过限制。

  • 错误处理:在调用API时,可能会遇到各种错误,需根据返回的错误码进行相应的处理。

5. 参考文档

通过以上步骤,可以成功调用京东API获取商品详情和进行关键词搜索。