京東聯(lián)盟C#接口測試示例分享
京東聯(lián)盟C#接口的下載地址為: http://jos.jd.com/doc/channel.htm?id=285
下載后,默認是一個控制臺程序,核心庫和demo程序在一個項目中。這里我把核心庫獨立成了Dll項目。
接口使用流程是,初始化DefaultJdClient類,然后調(diào)用需要的接口類,傳入?yún)?shù),執(zhí)行獲取返回結(jié)果。
注意,使用前請先修改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)獲取商品基本信息接口調(diào)用
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)獲取商品返現(xiàn)鏈接的接口調(diào)用
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());//聯(lián)盟ID
req.channel = "PC";//PC電腦端,如果是手機端就是WL
req.webId = dic["webid"].ToString();//網(wǎng)站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)解析返回的數(shù)據(jù)
返回的數(shù)據(jù)是json格式的,所以需要引入C# JSON庫: Newtonsoft.Json
處理商品返現(xiàn)地址:
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("返現(xiàn)地址:"+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預(yù)覽

6)文件下載
- 使用 BenchmarkDotNet 對 C# 代碼進行基準測試
- C#建立測試用例系統(tǒng)的示例代碼
- 關(guān)于Unity C# Mathf.Abs()取絕對值性能測試詳解
- C#使用base64對字符串進行編碼和解碼的測試
- C#使用String和StringBuilder運行速度測試及各自常用方法簡介
- 詳解C# WebApi 接口測試工具:WebApiTestClient
- c# 插入數(shù)據(jù)效率測試(mongodb)
- C#/.Net 中快速批量給SQLite數(shù)據(jù)庫插入測試數(shù)據(jù)
- C#代碼性能測試類(簡單實用)
- C#控制臺下測試多線程的方法
- c#測試反射性能示例
- c#測試本機sql運算速度的代碼示例分享
- C# 單元測試全解析
相關(guān)文章
.NET中的靜態(tài)與非靜態(tài)的區(qū)別分析
.NET中的靜態(tài)與非靜態(tài)的區(qū)別分析,需要的朋友可以參考一下2013-03-03
c#創(chuàng)建vc可調(diào)用的com組件方法分享
本文詳細闡述如何用C#創(chuàng)建一個COM組件,并能用VC6.0等調(diào)用,大家參考使用2013-12-12
unity3D實現(xiàn)物體任意角度自旋轉(zhuǎn)
這篇文章主要為大家詳細介紹了unity3D實現(xiàn)物體任意角度自旋轉(zhuǎn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-07-07

