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




目录
打赏
0
0
0
0
24
分享
相关文章
淘宝商品评论API接口全攻略
淘宝商品评论API接口为电商从业者提供重要数据支持,帮助分析商品评价和舆情。通过淘宝开放平台或第三方数据服务提供商可获取该接口。使用时需注册账号、创建应用并获取密钥。调用流程包括参数准备、签名生成、发送请求及处理响应。Python示例代码展示了具体实现方法。注意事项包括频率限制、数据更新和安全性。 简要步骤: 1. **淘宝开放平台**:注册账号、入驻、创建应用、获取密钥。 2. **第三方服务**:选择准确、稳定且价格合理的提供商。 3. **接口调用**:准备参数、生成签名、发送请求、解析响应。 4. **注意事项**:遵守频率限制,确保数据安全与及时更新。
90 28
【硬件测试】基于FPGA的4ASK调制解调通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的4ASK调制解调系统的硬件测试版本,该系统包括testbench、高斯信道模块和误码率统计模块,并新增了ILA在线数据采集和VIO在线SNR设置功能。通过VIO设置不同SNR(如15dB和25dB),实现了对系统性能的实时监测与调整。4ASK是一种通过改变载波幅度表示数据的数字调制方式,适用于多种通信场景。FPGA平台的高效性和灵活性使其成为构建高性能通信系统的理想选择。
53 17
避免15个常见的API测试错误
API测试是现代软件开发中的关键环节,但测试人员常陷入15个常见错误,如忽略文档、遗漏错误响应、缺乏自动化等。这些问题可能导致API的可靠性、安全性及性能下降。本文详细解析这些错误并提供解决建议。Apipost作为全方位工具,支持自动化测试、动态数据处理与安全性验证,助力高效测试,确保API在各种场景下稳定运行。通过避免这些陷阱,团队可显著提升API质量。
淘宝买家订单列表、订单详情、订单物流 API 接口全攻略
淘宝订单相关API接口是电商自动化的核心工具,提供订单数据管理和物流追踪功能。开发者可通过HTTP协议调用,支持Python、Java等语言,响应JSON格式数据。主要功能包括:订单列表查询、订单详情获取和物流轨迹追踪。申请流程:注册账号(c0b.cc/R4rbK2),创建应用并生成App Key,申请所需接口权限如taobao.trades.sold.get、taobao.trade.fullinfo.get等。
【硬件测试】基于FPGA的4FSK调制解调通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文基于之前的文章《基于FPGA的4FSK调制解调系统》,增加了ILA在线数据采集模块和VIO在线SNR设置模块,实现了硬件测试版本。通过VIO设置不同SNR(如10dB和20dB),并展示了ILA采集的数据结果。四频移键控(4FSK)是一种数字调制方法,利用四个不同频率传输二进制数据,具有较高的频带利用率和抗干扰性能。输入的二进制数据分为两组,每组两个比特,对应四个频率f1、f2、f3、f4,分别代表二进制组合00、01、10、11。调制过程中选择相应频率输出,并进行幅度调制以增强抗干扰能力。接收端通过带通滤波器提取信号并还原为原始二进制数据。
31 7
淘宝拍立淘按图搜索API接口系列的应用与数据解析
淘宝拍立淘按图搜索API接口是阿里巴巴旗下淘宝平台提供的一项基于图像识别技术的创新服务。以下是对该接口系列的应用与数据解析的详细分析
京东、淘宝、义乌购等电商平台的Api数据分析
京东、淘宝、义乌购等电商平台的数据分析涵盖数据收集、预处理、分析及应用优化。数据来源包括数据库、日志文件和网络爬虫,通过SQL查询、日志解析和爬虫抓取获取数据。预处理阶段进行数据清洗、缺失值处理和异常值检测。分析方法包括描述性分析、对比分析、漏斗分析等,关注成交金额、转化率等关键指标。最终基于分析结果制定策略并评估效果,持续优化平台运营。
淘宝商品详情优惠券API接口全攻略
淘宝商品详情优惠券API接口助力电商精准营销。通过商品ID,开发者可精准检索与特定商品相关的优惠券信息,包括面额、使用门槛、领取条件、有效期等详细数据,并实时监测优惠券状态。此接口支持个性化筛选参数,如优惠券面额范围和类型,返回JSON格式的优惠券列表及状态信息,满足数据整合、营销活动策划等需求,提升用户体验和运营效率。示例代码展示了Python调用方法,帮助快速集成。 供稿者:Taobaoapi2014
Windows用户必备:Postman v11详细安装指南与API测试入门教程(附官网下载
Postman是全球领先的API开发与测试工具,支持REST、SOAP、GraphQL等协议调试。2025年最新版v11新增AI智能生成测试用例、多环境变量同步等功能,适用于前后端分离开发、自动化测试、接口文档自动生成及团队协作共享API资源。本文详细介绍Postman的软件定位、核心功能、安装步骤、首次配置、基础使用及常见问题解答,帮助用户快速上手并高效利用该工具进行API开发与测试。
淘宝图片搜索商品列表API接口全攻略
淘宝图片搜索API(拍立淘)通过上传图片快速检索淘宝/天猫相似商品,支持标题、价格、销量等信息返回。核心功能包括以图搜图、商品筛选和分页查询,具备高效性、准确性和多语言支持。开发者需注册账号、创建应用并申请权限后调用接口,适用于电商平台、比价工具等场景。

热门文章

最新文章