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




目录
相关文章
|
26天前
|
人工智能 数据可视化 测试技术
Postman 性能测试教程:快速上手 API 压测
本文介绍API上线后因高频调用导致服务器告警,通过Postman与Apifox进行压力测试排查性能瓶颈。对比两款工具在批量请求、断言验证、可视化报告等方面的优劣,探讨API性能优化策略及行业未来发展方向。
Postman 性能测试教程:快速上手 API 压测
|
27天前
|
移动开发 算法 API
淘宝/天猫:使用物流查询API实时显示包裹位置,减少客服咨询量
电商平台中物流咨询占客服工作40%以上,用户频繁追问包裹位置。本文介绍通过物流查询API实现包裹实时追踪,降低75.6%咨询量,提升用户体验与复购率,助力降本增效。(238字)
244 0
|
12天前
|
JSON 缓存 API
淘宝天猫商品详情API秘籍!轻松获取SKU属性数据
淘宝商品详情API(taobao.item.get)可获取商品标题、价格、SKU、库存等全量信息,支持RESTful调用,返回JSON数据,适用于电商导购与竞品分析。需企业实名认证,申请权限后通过签名加密请求。Python示例展示如何调用接口,配合fields参数可优化性能,应对频率限制与数据延迟建议轮询+缓存策略。
|
11天前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
9天前
|
开发者 API 机器学习/深度学习
淘宝 / 1688 / 义乌购图搜 API 实战指南:接口调用与商业场景应用
本文详解淘宝、1688、义乌购三大平台图片搜索接口的核心特点、调用流程与实战代码。涵盖跨平台对比、参数配置、响应解析及避坑指南,支持URL/Base64上传,返回商品ID、价格、销量等关键信息,助力开发者快速实现商品识别与比价功能。
淘宝 / 1688 / 义乌购图搜 API 实战指南:接口调用与商业场景应用
|
18天前
|
供应链 监控 数据挖掘
解锁淘宝电商 API:开启无限商业新可能
淘宝电商API如同一把“智能钥匙”,赋能商家实现智能选品、精准营销、高效库存管理与深度数据分析。通过实时数据洞察市场趋势,优化运营决策,提升转化率与用户满意度,助力电商企业降本增效,抢占市场先机。
51 6
|
24天前
|
移动开发 安全 小程序
淘宝/天猫:使用支付宝API实现多场景支付,覆盖用户偏好
本文详解如何通过支付宝API在淘宝、天猫等平台实现多场景支付,覆盖APP、PC、H5及小程序,结合用户偏好动态配置分期、快捷支付等功能,提升转化率与体验。内容涵盖API核心功能、技术示例(Python)、安全实践与性能优化,确保开发高效可靠。
323 3
|
20天前
|
JSON 自然语言处理 监控
淘宝关键词搜索与商品详情API接口(JSON数据返回)
通过商品ID(num_iid)获取商品全量信息,包括SKU规格、库存、促销活动、卖家信息、详情页HTML等。
|
20天前
|
Java API 开发者
揭秘淘宝详情 API 接口:解锁电商数据应用新玩法
淘宝详情API是获取商品信息的“金钥匙”,可实时抓取标题、价格、库存等数据,广泛应用于电商分析、比价网站与智能选品。合法调用,助力精准营销与决策,推动电商高效发展。(238字)
97 0
|
27天前
|
人工智能 供应链 API
淘宝API商品详情接口全解析:从基础数据到深度挖掘
淘宝API商品详情接口不仅提供基础数据,更通过深度挖掘实现从数据到洞察的跨越。开发者需结合业务场景选择合适分析方法,利用AI标签、区块链溯源等新技术,最终实现数据驱动的电商业务创新。