淘宝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,如需转载请自行联系原博主。




目录
相关文章
|
6月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
6月前
|
JSON API 数据格式
淘宝拍立淘按图搜索API系列,json数据返回
淘宝拍立淘按图搜索API系列通过图像识别技术实现商品搜索功能,调用后返回的JSON数据包含商品标题、图片链接、价格、销量、相似度评分等核心字段,支持分页和详细商品信息展示。以下是该API接口返回的JSON数据示例及详细解析:
|
6月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
6月前
|
API 开发者 数据采集
高效获取淘宝商品详情:API 开发实现链接解析的完整技术方案
2025反向海淘新机遇:依托代购系统,聚焦小众垂直品类,结合Pandabay数据选品,降本增效。系统实现智能翻译、支付风控、物流优化,助力中式养生茶等品类利润翻倍,新手也能快速入局全球市场。
高效获取淘宝商品详情:API 开发实现链接解析的完整技术方案
|
6月前
|
JSON 安全 API
淘宝天猫上货API接口技术指南
本文介绍淘宝天猫上货API,详解其RESTful接口原理、认证流程及Python调用示例。涵盖商品添加、签名生成、响应处理,并提供代码实现与最佳实践,助力开发者高效实现自动化批量上架。
632 3
|
6月前
|
供应链 监控 算法
淘宝商品详情 API:从商品数据细节中捕捉电商最新流行趋势,赋能商家决策
淘宝商品详情API是洞察电商趋势的核心工具,通过商品信息、主图视频、SKU属性等多维数据,助力商家精准捕捉消费偏好、优化产品设计、制定营销与库存策略,实现数据驱动的科学决策。
淘宝商品详情 API:从商品数据细节中捕捉电商最新流行趋势,赋能商家决策
|
6月前
|
存储 缓存 算法
淘宝买家秀 API 深度开发:多模态内容解析与合规推荐技术拆解
本文详解淘宝买家秀接口(taobao.reviews.get)的合规调用、数据标准化与智能推荐全链路方案。涵盖权限申请、多模态数据清洗、情感分析、混合推荐模型及缓存优化,助力开发者提升审核效率60%、商品转化率增长28%,实现UGC数据高效变现。
|
6月前
|
存储 缓存 算法
亚马逊 SP-API 深度开发:关键字搜索接口的购物意图挖掘与合规竞品分析
本文深度解析亚马逊SP-API关键字搜索接口的合规调用与商业应用,涵盖意图识别、竞品分析、性能优化全链路。通过COSMO算法解析用户购物意图,结合合规技术方案提升关键词转化率,助力卖家实现数据驱动决策,安全高效优化运营。
|
测试技术 API 数据库
五大典型场景中的API自动化测试实践
项目进行过程中,为了解决实际的一些问题,我们会设计更加复杂的测试场景,本文将列举几个实际项目中的典型场景,分享API自动化测试实践。
|
7月前
|
数据可视化 测试技术 API
从接口性能到稳定性:这些API调试工具,让你的开发过程事半功倍
在软件开发中,接口调试与测试对接口性能、稳定性、准确性及团队协作至关重要。随着开发节奏加快,传统方式已难满足需求,专业API工具成为首选。本文介绍了Apifox、Postman、YApi、SoapUI、JMeter、Swagger等主流工具,对比其功能与适用场景,并推荐Apifox作为集成度高、支持中文、可视化强的一体化解决方案,助力提升API开发与测试效率。