京東聯(lián)盟C#接口測試示例分享
京東聯(lián)盟C#接口的下載地址為: http://jos.jd.com/doc/channel.htm?id=285
下載后,默認(rèn)是一個(gè)控制臺(tái)程序,核心庫和demo程序在一個(gè)項(xiàng)目中。這里我把核心庫獨(dú)立成了Dll項(xiàng)目。
接口使用流程是,初始化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是一個(gè)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";//注意,這里是商品的落地頁面,即實(shí)際鏈接 req.unionId = long.Parse(dic["unionid"].ToString());//聯(lián)盟ID req.channel = "PC";//PC電腦端,如果是手機(jī)端就是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是商品的實(shí)際頁面。
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[] { "商品編號(hào)", (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價(jià)格", "¥"+(string)obj["unitPrice"] }); dataGridView1.Rows.Add(new object[] { "WL價(jià)格", "¥"+(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 對(duì) C# 代碼進(jìn)行基準(zhǔn)測試
- C#建立測試用例系統(tǒng)的示例代碼
- 關(guān)于Unity C# Mathf.Abs()取絕對(duì)值性能測試詳解
- C#使用base64對(duì)字符串進(jìn)行編碼和解碼的測試
- C#使用String和StringBuilder運(yùn)行速度測試及各自常用方法簡介
- 詳解C# WebApi 接口測試工具:WebApiTestClient
- c# 插入數(shù)據(jù)效率測試(mongodb)
- C#/.Net 中快速批量給SQLite數(shù)據(jù)庫插入測試數(shù)據(jù)
- C#代碼性能測試類(簡單實(shí)用)
- C#控制臺(tái)下測試多線程的方法
- c#測試反射性能示例
- c#測試本機(jī)sql運(yùn)算速度的代碼示例分享
- C# 單元測試全解析
相關(guān)文章
ListView Adapter優(yōu)化 實(shí)例
ListView Adapter優(yōu)化 實(shí)例,需要的朋友可以參考一下2013-04-04Unity實(shí)現(xiàn)鼠標(biāo)雙擊與長按的檢測
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)鼠標(biāo)雙擊與長按的檢測,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02關(guān)于C#中使用Oracle存儲(chǔ)過程返回結(jié)果集的問題
Oracle中可以使用游標(biāo)(Cursor)對(duì)數(shù)據(jù)集進(jìn)行操作,但在存儲(chǔ)過程輸出參數(shù)中直接使用Cursor錯(cuò)誤,下面小編給大家?guī)砹薈#中使用Oracle存儲(chǔ)過程返回結(jié)果集的問題,感興趣的朋友一起看看吧2021-10-10C#復(fù)雜XML反序列化為實(shí)體對(duì)象兩種方式小結(jié)
本文主要介紹了C#復(fù)雜XML反序列化為實(shí)體對(duì)象兩種方式,主要介紹如何把通過接口獲取到的Xml數(shù)據(jù)轉(zhuǎn)換成(反序列化)我們想要的實(shí)體對(duì)象,感興趣的可以一起來了解一下2022-04-04