淘宝API开发系列---淘宝API的测试及使用2

继续前面一篇随笔《淘宝API开发系列---淘宝API的测试及使用》,来继续介绍淘宝API的具体代码开发部分,上篇主要是介绍淘宝SDK开发的一些流程及必备的信息,以及掌握如何学会利用API文档、淘宝API测试工具来获取我们所需的数据,其中我一般倾向于获取Json数据,然后进行分析,其中Json数据可以通过JsonView工具(http://jsonviewer.codeplex.com/)进行格式化显示,方便我们了解和区分各个属性的信息。另外淘宝的SDK里面,封装了很多对象,我们通过数据就可以获取到相关的信息了,不过注意的就是,我们每个接口调用,都要传入Fields的属性,如果我们没有指定相应的属性字段,那么接口返回的数据,就没有这项的,淘宝SDK的对象属性就会为空。

 

 通过以上的工具,我们就能可视化属性的信息了,对接口数据的理解就更加清晰,首先我们来看看我测试例子的运行效果如下所示。

 

 其中上面例子的代码如下所示。

        private void TestUserGet()
        {
            //单独用户的信息
            Console.WriteLine("单独用户的信息");
            UserGetRequest req = new UserGetRequest(); //实例化具体API对应的Request类
            req.Fields = "user_id,nick,created,buyer_credit,type,sex";
            req.Nick = "wuhuacong";
            UserGetResponse rsp = myclient.Execute(req);//执行API请求并将该类转换为response对象
            Console.WriteLine(rsp.Body);
            if (rsp.User != null)
            {
                //Console.WriteLine(rsp.User.Nick);
                //Console.WriteLine(ObjectToString(rsp.User));
                List<User> list = new List<User>();
                list.Add(rsp.User);
                this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//对应字段的属性没有“_”字符的
                this.winGridView1.DataSource = list;
            }
        }

        private void TestItemGet()
        {
            //单独商品的信息
            Console.WriteLine("单独商品的信息");
            ItemGetRequest req = new ItemGetRequest();
            req.Fields = "num_iid,title,nick,pic_path,cid,price,type,location.city,delist_time,post_fee";
            req.NumIid = 3838293428L;
            ItemGetResponse itemRsp = myclient.Execute(req);
            if (itemRsp != null && itemRsp.Item != null)
            {
                //Console.WriteLine(itemRsp.Item.Nick);
                //Console.WriteLine(ObjectToString(itemRsp.Item));
                List<Item> list = new List<Item>();
                list.Add(itemRsp.Item);
                this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//对应字段的属性没有“_”字符的
                this.winGridView1.DataSource = list;
            }
        }

        private void TestItemSearch()
        {
            //查询商品信息(不含类别)
            Console.WriteLine("查询商品信息(不含类别)");
            ItemsGetRequest req = new ItemsGetRequest();
            req.Fields = "num_iid,title,nick,pic_url,cid,price,type,delist_time,post_fee,score,volume";//,location.city,location.state";
            req.Q = "笔记本";
            //itemReq.Cid = "14";
            req.OrderBy = "volume:desc";
            req.PageNo = 1;
            req.PageSize = 40;

            //显示列表信息
            ItemsGetResponse itemRsp = myclient.Execute(req);
            if (itemRsp != null)
            {
                //Console.WriteLine(itemRsp.TotalResults);
                //foreach (Item item in itemRsp.Items)
                //{
                //    Console.WriteLine(ObjectToString(item));
                //}
                this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//对应字段的属性没有“_”字符的
                this.winGridView1.DataSource = itemRsp.Items;
            }

        } 

对于需要获取用户私密信息,如买入卖出等重要信息,还需要获取用户的SessionKey的,我们可以通过下面接口函数,弹出登录窗口,然后登录后,定位到对应的App应用页面,然后页面加载的时候,获取到对应的SessionKey、

 

 

 

        /// <summary>
        /// 判断是否顺利获取SessionKey
        /// </summary>
        /// <returns></returns>
        private string GetAuthorizeCode(string appKey)
        {
            string authorizeCode = "";
            FrmAuthorized dlg = new FrmAuthorized();
            dlg.AppKey = appkey;
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                authorizeCode = dlg.AuthrizeCode;
            }
            if (string.IsNullOrEmpty(authorizeCode)) return null;

            string sessionKeyUrl = string.Format(TOP_AUTH_URL, authorizeCode);
            HttpHelper helper = new HttpHelper();
            string html = helper.GetHtml(sessionKeyUrl);
            //格式
            //top_appkey=1142&top_parameters=xxx&top_session=xxx&top_sign=xxx&encode=utf-8
            string reg = ".*?&top_session=(?<session>.*?)&top_sign";
            string sessionKey = CRegex.GetText(html, reg, 1);
            return sessionKey;

 最后我们看看其中获取已买记录的接口实现如下所示。

        private void TestBuyInfo()
        {
            if (string.IsNullOrEmpty(sessionKey))
            {
                sessionKey = GetAuthorizeCode(this.appkey);
            }

            //买入交易
            Console.WriteLine("买入交易");
            TradesBoughtGetRequest req = new TradesBoughtGetRequest();
            //req.Fields = "tid,title,price,type,num_iid,seller_nick,buyer_nick,status";
            req.Fields = "tid,title,price,type,num_iid,seller_nick,buyer_nick,status,receiver_state,receiver_city,receiver_district,receiver_address";
            req.PageNo = 1L;
            req.PageSize = 40L;
            TradesBoughtGetResponse rsp = myclient.Execute(req, sessionKey);
            if (rsp != null)
            {
                //Console.WriteLine(rsp.Trades.Count);
                //if (rsp.Trades.Count > 0)
                //{
                //    foreach (Trade item in rsp.Trades)
                //    {
                //        Console.WriteLine(ObjectToString(item));
                //    }
                //}
                this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//对应字段的属性没有“_”字符的
                this.winGridView1.DataSource = rsp.Trades;
            }

本文转自博客园伍华聪的博客,原文链接:淘宝API开发系列---淘宝API的测试及使用2,如需转载请自行联系原博主。

时间: 2024-08-01 01:56:05

淘宝API开发系列---淘宝API的测试及使用2的相关文章

淘宝API开发系列---阿里.聚石塔.开放平台的使用

好久没有继续跟进淘宝的API使用了,有很多做相关应用的同行都来咨询,很多都因为自己开发工作比较忙而没有来得及好的处理,前几天,有一个朋友叫帮忙指导如何使用淘宝API,由于原来有一些成熟的例子应用,因此原以为直接运行或者稍微修改一下即可,因此没有太多的注意. 可是,发现淘宝的API应用变化已经很大了,离我最后一篇淘宝API例子的随笔<淘宝API开发系列---淘宝API的测试及使用2 >有一年多的时间了,因此重新到http://api.taobao.com/myresources/standard

淘宝API开发系列--商家的绑定

在上篇<淘宝API开发系列--开篇概述>介绍了下淘宝API平台的一些基本知识,由于一直有事情忙,就没有及时跟进随笔的更新,本篇继续讨论淘宝API的开发知识,主要介绍商家的绑定操作.上篇我们说过,淘宝就是基于应用程序键来控制用户的访问频率和流量的,另外可以通过应用程序键,让使用者登陆确认,获取到相关的授权码,然后获取SessionKey,作为访问使用者淘宝资源(如买入卖出等私人记录的信息).  我们再看看SessionKey是如何获取的(下面是淘宝关于正式环境下SessionKey的说明): 正

淘宝API开发系列--开篇概述

前阵子有空发现淘宝的API挺有意思的,就留意学习了一下,淘宝从2008.6月开始公测以来,API渐趋稳定,文档的相关说明也比较细致,不过基于淘宝API做应用的软件目前应该还不是很多,不过由于马云的影响力,淘宝API终会发光发热,给我们做开发的程序员多一份选择,多一个摆弄的东西. 在学习中,发现有一些比较好玩,比较有趣的地方,如果有空继续的话,准备开一个系列,总结介绍一下相关的知识,希望能够给博客多一份人气,多一份积累. 淘宝开放平台(Taobao Open Plateform,又叫TOP),地址

基于swagger的RESTful API开发实践

前言 RESTful架构,是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用.后端通过提供一套标准的RESTful API,让网站,移动端和第三方系统都可以基于API进行数据交互和对接,极大的提高系统的开发效率,也使得前后端分离架构成为可能. 因此,不同的测试,开发团队(前端,移动端,第三方接入者等)都需要围绕API进行开发工作,API的规范和文档对于团队开发,测试变得越来越重要.除了一份标准的文档,我们还希望API能够在线测试使用,从而有更

淘宝客API是什么 淘宝客API怎么赚钱

淘宝客API是什么 一.淘宝联盟的API 这个现在可以通过淘宝网的开放平台查看,功能更多,而且不是任何一个淘宝客都可以用这个功能,即使花钱也不行.你必须做淘客达到一定的等级才可以做. 什么是淘宝网的开放网赚平台?这个只要登录联盟后天就可以找到入口进入看介绍."淘宝开放平台(Taobao Open Platform,简称 TOP)是大淘宝电子商务基础服务的重要开放途径,它将推动各行各业定制.创新.进化,并最终促成新商业文明生态圈.淘宝开放平台的使命是把淘宝网的商品.用户.交易.物流等一系列电子商务

淘宝网物流宝平台11日上线 全面开放API接口

6月11日消息,淘宝网今日正式宣布推出淘宝大物流计划,该计划的核心包含了API接口全面开放的http://www.aliyun.com/zixun/aggregation/7805.html">淘宝物流宝平台(http://e56.taobao.com).物流合作伙伴体系以及物流服务标准体系等三大块内容. 此次推出的淘宝大物流计划,共包括了三大块内容,分别是基于物流信息.交易消息和商家ERP系统全面打通的淘宝物流宝平台,以及淘宝物流合作伙伴体系和物流服务标准体系. 据了解,首度上线的淘宝物

淘宝网-淘宝会员自动打标签的API是什么没有找到的

问题描述 淘宝会员自动打标签的API是什么没有找到的 在开放平台没有找到对应的API和sdk文档 http://jingyan.baidu.com/article/4e5b3e195ac58a91901e2423.html 解决方案 应该是根据标签可以找到相应的买家,然后可以添加到你的会员里

浅谈小型淘宝客网站中淘宝API的应用

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 近1年来,随着淘宝客网站的兴起,淘宝API网站程序也非常红火,有免费的,有收费的;有纯公益性的,有带后门的.总之,现在任何一个哪怕是超新手站长要做淘宝客网站,都会选择一个淘宝API程序作为网站的基础.今天我想谈一下中小淘宝客网站中淘宝API程序的应用的一个小问题. 淘宝API程序生成的网页还是比较容易被搜索引擎收录的,这是它的优点之一.我这里

一位淘宝前端开发人员的心声:马云的加班论是谬论

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 这是某位淘宝前端开发人员一篇博客,转载过来,与各位分享: 最近心里有点烦,烦出高血压的话,就要到"无忧高血压http://www.wuyougaoxieya.cn"去找些降压的方法了.忙着一堆事情,终于能轻松点了,码码字,透透气. 不加班冲突 昨天因为不愿意加班,和一个项目经理Y发生了一些不愉快.Y的一部分理论是马云语录: