这篇文章主要介绍了京东联盟C#接口测试示例分享的相关资料,需要的朋友可以参考下
京东联盟C#接口的下载地址为: http://jos.jd.com/doc/channel.htm?id=285
下载后,默认是一个控制台程序,核心库和demo程序在一个项目中。这里我把核心库独立成了Dll项目。
接口使用流程是,初始化DefaultJdClient类,然后调用需要的接口类,传入参数,执行获取返回结果。
注意,使用前请先修改bin目录下的config.json文件,配置appkey等信息,格式如下:
{
"appkey":"11111",
"appsecret":"2222",
"token":"234345",
"webid":"2234234",
"unionid":"567567"
}
1)初始化
IJdClient client = null;
private void init_JDClient()
{
string url = "https://api.jd.com/routerjson";
this.client = new DefaultJdClient(url, dic["appkey"].ToString(), dic["appsecret"].ToString());
}
其中dic是一个Dictionary类型,保存了appkey等配置信息。
2)获取商品基本信息接口调用
private string request_goodsInfo()
{
ServicePromotionGoodsInfoRequest req = new ServicePromotionGoodsInfoRequest();
req.skuIds = txtGoodsID.Text;//商品ID值
ServicePromotionGoodsInfoResponse response = client.Execute(req, dic["token"], DateTime.Now.ToLocalTime());
return response.Body;
}
其中dic[‘token']是读取字典中的token值,skuIds属性是商品的ID值,这里Demo中用TextBox输入。
3)获取商品返现链接的接口调用
private string request_goodsRateUrl()
{
ServicePromotionGetcodeRequest req = new ServicePromotionGetcodeRequest();
req.promotionType = 7;
req.materialId = "http://item.jd.com/"+txtGoodsID.Text+".html";//注意,这里是商品的落地页面,即实际链接
req.unionId = long.Parse(dic["unionid"].ToString());//联盟ID
req.channel = "PC";//PC电脑端,如果是手机端就是WL
req.webId = dic["webid"].ToString();//网站ID
//req.extendId = "jingdong";
//req.ext1 = "jingdong";
//req.adttype = "6";
//req.protocol = 0;//1为https,其他为http
//req.pid = "jingdong";
ServicePromotionGetcodeResponse response = client.Execute(req, dic["token"], DateTime.Now.ToLocalTime());
return response.Body;
}
其中的materialID、unionId、webId是需要修改的,materialId是商品的实际页面。
4)解析返回的数据
返回的数据是json格式的,所以需要引入C# JSON库: Newtonsoft.Json
处理商品返现地址:
string urlinfo = request_goodsRateUrl();
string url = "";
JObject obj = JObject.Parse(urlinfo);
string queryjs_result = (string)obj["jingdong_service_promotion_getcode_responce"]["queryjs_result"];
obj = JObject.Parse(queryjs_result);
if ((int)obj["resultCode"] == 0)
{
url = (string)obj["url"];
MessageBox.Show("返现地址:"+url);
}
处理商品基本信息:
string goodsinfo = request_goodsInfo();
JObject obj = JObject.Parse(goodsinfo);
string getpromotioninfo_result = (string)obj["jingdong_service_promotion_goodsInfo_responce"]["getpromotioninfo_result"];
obj = JObject.Parse(getpromotioninfo_result);
if ((bool)obj["sucessed"])
{
obj = (JObject)obj["result"][0];
dataGridView1.Rows.Add(new object[] { "商品名称", (string)obj["goodsName"] });
dataGridView1.Rows.Add(new object[] { "商品编号", (string)obj["skuId"] });
dataGridView1.Rows.Add(new object[] { "PC比率", (string)obj["commisionRatioPc"]+"%" });
dataGridView1.Rows.Add(new object[] { "WL比率", (string)obj["commisionRatioWl"]+"%" });
dataGridView1.Rows.Add(new object[] { "PC价格", "¥"+(string)obj["unitPrice"] });
dataGridView1.Rows.Add(new object[] { "WL价格", "¥"+(string)obj["wlUnitPrice"] });
WebRequest webreq = WebRequest.Create((string)obj["imgUrl"]);
WebResponse webres = webreq.GetResponse();
using(Stream stream = webres.GetResponseStream())
{
pictureBox1.Image = Image.FromStream(stream);
pictureBox1.Tag = url;
}
}
这里使用DataGridView显示商品基本信息,图片使用PictureBox显示。
5)Demo预览
6)文件下载
jos-sdk-net-include-demo
本文标题为:京东联盟C#接口测试示例分享
基础教程推荐
- C# 调用WebService的方法 2023-03-09
- C#类和结构详解 2023-05-30
- C#控制台实现飞行棋小游戏 2023-04-22
- winform把Office转成PDF文件 2023-06-14
- C# windows语音识别与朗读实例 2023-04-27
- unity实现动态排行榜 2023-04-27
- 一个读写csv文件的C#类 2022-11-06
- ZooKeeper的安装及部署教程 2023-01-22
- C# List实现行转列的通用方案 2022-11-02
- linux – 如何在Debian Jessie中安装dotnet core sdk 2023-09-26