京东联盟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

(0)

相关推荐

  • C#接口实现方法实例分析

    本文实例讲述了C#接口实现方法.分享给大家供大家参考.具体如下: 在讲解C#实现接口的实例解析之前我们来看看C#接口的定义,如果一个类派生于一个接口,它就会执行某些函数.并不是所有的面向对象语言都支持接口,所以本节将详细介绍C#实现接口的问题. C#实现接口注意: 熟悉COM的开发人员应注意,尽管在概念上C#接口类似于COM接口,但它们是不同的,底层的结构不同,例如,C#接口并不派生于IUnknown.C#接口根据.NET函数提供了一个契约.与COM接口不同,C#接口不代表任何类型的二进制标准.

  • c#接口使用示例分享

    1.接口: 接口与抽象类一样,也是表示某种规则,一旦使用了该规则,就必须实现相关的方法.对于C#语言而言,由于只能继承自一个父类,因此若有多个规则需要实现,则使用接口是个比较好的做法. 2.接口的定义 复制代码 代码如下: interface 接口名{    方法声明;} 3.不同接口中若有多个相同名称的方法,则需要显式指定接口名,例如: 4.接口的使用 使用接口也可以实现多态. 代码如下: 复制代码 代码如下: class Program{    static void Main(string

  • C#接口interface用法实例

    本文实例讲述了C#接口interface用法.分享给大家供大家参考.具体如下: using System; //example of interfaces public class Animals { //simple interface interface IAnimal { void Breathes(); } //interfaces can inherent from other interfaces interface IMammal : IAnimal { int HairLengt

  • 日常收集C#接口知识(知识全面)

    第一节 接口慨述 接口(interface)用来定义一种程序的协定.实现接口的类或者结构要与接口的定义严格一致.有了这个协定,就可以抛开编程语言的限制(理论上).接口可以从多个基接口继承,而类或结构可以实现多个接口.接口可以包含方法.属性.事件和索引器.接口本身不提供它所定义的成员的实现.接口只指定实现该接口的类或接口必须提供的成员. 接口好比一种模版,这种模版定义了对象必须实现的方法,其目的就是让这些方法可以作为接口实例被引用.接口不能被实例化.类可以实现多个接口并且通过这些实现的接口被索引.

  • C#接口归纳总结实例详解

    C#接口的学习,在编程中,我们经常会用到接口,那什么是接口呢? 接口描述的是可属于任何类或结构的一组相关功能,所以实现接口的类或结构必须实现接口定义中指定的接口成员. 接口使用interface关键字进行定义,可由方法.属性.事件.索引器或这四种成员类型的任意组合构成. 接口的特性: 1.接口类似于抽象基类,不能直接实例化接口:接口中的方法都是抽象方法,实现接口的任何非抽象类型都必须实现接口的所有成员: 当显式实现该接口的成员时,实现的成员不能通过类实例访问,只能通过接口实例访问. 当隐式实现该

  • 聊一聊C#接口问题 新手速来围观

    这段时间的项目有用到接口,开始不是特别理解接口,只是单单知道接口定义非常简单,甚至觉得这个接口只是多此一举(个人开发的时候).现在开始团队开发,才发现接口原来是这么的重要和便捷! 接下来就来谈谈我这段时间对接口使用的粗浅见解,说的对希望大家赞,说的有误的地方希望大家多多包涵建议! READY GO! 接口的定义就不多说了,它有一个很重要的知识点,就是所有继承这个接口类的都必须实现接口中的定义,说到这个必须,在团队开发中,只要我们商定好了接口,那我们的代码是不是就统一了!!! 这是我觉得接口重要的

  • C#接口在派生类和外部类中的调用方法示例

    本文实例讲述了C#接口在派生类和外部类中的调用方法.分享给大家供大家参考,具体如下: C#的接口通过interface关键字进行创建,在接口中可以包含属性,方法等成员变量.接口的派生类可以对接口中的方法进行实现.一个类可以继承多个接口对这些接口中的方法进行实现,一个接口也可以派生多个类接口中的方法可以由这些类中的一个或多个进行实现.在接口的派生类中可以直接调用接口中的方法. 在派生类中调用举例: //接口 public interface IPersonalService { //接口中的方法

  • C#接口(Interface)用法分析

    本文实例分析了C#接口(Interface)用法.分享给大家供大家参考.具体分析如下: 继承"基类"跟继承"接口"都能实现某些相同的功能,但有些接口能够完成的功能是只用基类无法实现的 1.接口用于描述一组类的公共方法/公共属性. 它不实现任何的方法或属性,只是告诉继承它的类至少要实现哪些功能,继承它的类可以增加自己的方法. 2.使用接口可以使继承它的类: 命名统一/规范,易于维护.比如: 两个类 "狗"和"猫",如果它们都继承

  • 京东联盟C#接口测试示例分享

    京东联盟C#接口的下载地址为: http://jos.jd.com/doc/channel.htm?id=285 下载后,默认是一个控制台程序,核心库和demo程序在一个项目中.这里我把核心库独立成了Dll项目. 接口使用流程是,初始化DefaultJdClient类,然后调用需要的接口类,传入参数,执行获取返回结果. 注意,使用前请先修改bin目录下的config.json文件,配置appkey等信息,格式如下: { "appkey":"11111", "

  • javascript请求servlet实现ajax示例(分享)

    ajax请求是一种无刷新式的用户体验,可以发送GET和POST两种异步请求,现记录如下: GET请求: function sendRequestByGet(){ //定义异步请求对象 var xmlReq; //检测浏览器是否直接支持ajax if(window.XMLHttpRequest){//直接支持ajax xmlReq=new XMLHttpRequest(); }else{//不直接支持ajax xmlReq=new ActiveObject('Microsoft.XMLHTTP')

  • adonet基础示例分享(adonet连接数据库)

    adonet基础示例分享 复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using Sys

  • jQuery实现仿京东防抖动菜单效果示例

    本文实例讲述了jQuery实现仿京东防抖动菜单效果.分享给大家供大家参考,具体如下: 完整代码: <!DOCTYPE html> <html> <head> <title>www.jb51.net jQuery仿京东菜单</title> <meta charset="utf-8"> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.

  • java贪心算法初学感悟图解及示例分享

    算法简介 1)贪心算法是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致是最好或者最优的算法 2)贪心算法所得到的结果不一定是最优的结果(有时候会是最优解),但是都是相对近似(接近)最优解的结果. 应用场景 --> 集合覆盖 public class GreedyAlgorithm { public static void main(String[] args) { // 创建广播电台,放入到Map HashMap<String, HashSet<

  • Composition Api封装业务hook思路示例分享

    目录 前序 hook的场景 useGetJobList 共同 思路历程 心得 utils 和 hook 的区别 总结 前序 近期公司的新项目一个小程序,一直想尝试 Vue3 开发项目,苦于自己的驱动力不行,学的零零碎碎的.因此小程序我直接跟项目组长说我要使用 uniapp 的 Vue3 版进行开发.开发中遇到业务场景相同的,就分装了一个hook 来减少代码,易于维护. hook的场景 这种获取列表的需求很常见吧,在我这个小程序中有3处使用到了获取列表的功能.分别是: 我的收藏.已投递岗位.未投递

  • Java实现京东联盟API数据获取功能

    一:api参数 京东联盟提供了一个SDK的包下载好加入到项目中,SDK封装了api的调用方法,代码就是每个api的调用实例如下把申请的四个参数填好就行 . String SERVER_URL = "https://api.jd.com/routerjson"; String accessToken = null; String appKey = ""; String appSecret = ""; JdClient client=new Defa

  • GO语言操作Elasticsearch示例分享

    目录 Elasticsearch简介 连接Elasticsearch 创建索引 创建model结构体 初始化model 创建索引 搜索数据 创建返回结构体 搜索数据 解析数据 修改数据 单条修改 批量修改 删除数据 单条删除 批量删除 Elasticsearch简介 Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上. Lucene 可以说是当下最先进.高性能.全功能的搜索引擎库–无论是开源还是私有. 连接Elasticsearch

  • java实现京东登陆示例分享

    复制代码 代码如下: package com.lkb.test; import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map; import org.apache.http.HttpResponse;import org.apache.http.client.ResponseHandler;import org.ap

  • angularJS 中input示例分享

    这里给大家分享一则input指令的使用示例 复制代码 代码如下: <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> <script src="http://localhost:81/js/jquery.js"> </script> <scri

随机推荐