西西软件园多重安全检测下载网站、值得信赖的软件下载站!
西西首页 常用软件 软件下载 安卓软件 游戏下载 安卓游戏 MAC应用 驱动下载 安卓电视
系统工具网络工具媒体工具图形图像聊天工具应用软件编程开发手机软件安卓应用电脑安全字体素材

Aliexpress API 测试工具

  • Aliexpress API 测试工具
  • 软件大小:1.1M
  • 更新时间:2013-08-30 08:53
  • 软件语言:中文
  • 软件厂商:
  • 软件类别:国产软件 / 免费软件 / 编程辅助
  • 软件等级:4级
  • 应用平台:WinAll, WinXP
  • 官方网站:暂无
好评:50%
坏评:50%

装机必备软件

软件介绍

这个工具借用了 JsonView 的一个控件, 从CodePlex 上下来的JsonView 用的是 Newtonsoft.Json 1.1.1.0 , 但是在 API 内,我用的是 4.5.0.0 的DLL去解析 API 返回的数据, 这样就造成了DLL版本不一致的问题. 

要解决这个问题,需要在 APP.config 里加一段:

 1 <configuration>
 2 
 3 <runtime>
 4 
 5 <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
 6 
 7 <dependentAssembly>
 8 
 9 <assemblyIdentity name="Newtonsoft.Json"/>
10 
11 <codeBase version="1.1.1.0" href="v1/Newtonsoft.Json_1.dll"/>
12 
13 <codeBase version="4.5.0.0" href="Newtonsoft.Json.dll"/>
14 
15 </dependentAssembly>
16 
17 </assemblyBinding>
18 
19 </runtime>
20 
21 </configuration>

将 1.1.1.0 的 DLL 放到程序目录下面的 V1 文件夹下, 版本冲突就解决了.

大至的一个结构:

Methods 下的每个类对应 API 里的每个方法, 大致如下:

 1     public class OrderQueryList : MethodBase<OrderList> {
 2 
 3  
 4 
 5         protected override string APIName {
 6 
 7             get { return "api.findOrderListQuery"; }
 8 
 9         }
10 
11  
12 
13         private int pageSize = 50;
14 
15  
16 
17         [ParamName("pageSize", Required = true)]
18 
19         public int PageSize {
20 
21             get {
22 
23                 return pageSize;
24 
25             }
26 
27             set {
28 
29                 this.pageSize = value < 1 ? 1 : (value > 50 ? 50 : value);
30 
31             }
32 
33         }
34 
35  
36 
37         private int page = 1;
38 
39  
40 
41         [ParamName("page", Required = true)]
42 
43         public int Page {
44 
45             get {
46 
47                 return this.page;
48 
49             }
50 
51             set {
52 
53                 this.page = value < 1 ? 1 : value;
54 
55             }
56 
57         }
58 
59  
60 
61         [ParamName("createDateStart")]
62 
63         [AliDateTimeParamFormatter("MM/dd/yyyy")]
64 
65         public DateTime? CreateBegin { get; set; }
66 
67  
68 
69         [ParamName("createDateEnd")]
70 
71         [AliDateTimeParamFormatter("MM/dd/yyyy")]
72 
73         public DateTime? CreateEnd { get; set; }
74 
75  
76 
77         [ParamName("orderStatus")]
78 
79         public OrderStatus? Status { get; set; }
80 
81     }
82 
83  

带 ParamName 特性的属性即API 说明列出的 API 方法所需要的参数, 在 MethodBase 里有个虚方法 Execute 及 GetResult.

 绝大部分API方法不需要重写这两个方法, 但是有两个特例(到目前为止,我遇到的): 和上传图片有关的两个方法.

http://gw.api.alibaba.com/dev/doc/api.htm?ns=aliexpress.open&n=api.uploadTempImage&v=1

大家可以看看, Ali 的人真是省事, 就几句话了事. 光凭这几句话, 打死我也想不出要怎么个上传法. 我费劲巴啦的耗了几个小时按照网页上传图片的方法对 RequestHelper 类进行修改,然后建个测试网站做测试, 改完后发现牙的根本就不是这样上传的, 结果死都是500,未找到文件.

后来在阿里巴巴的论坛里找到了某同志的回贴, 原来和从网页上传图片完全不搭调.

 1         [NeedAuth]
 2         public override string GetResult(Auth auth) {
 3             var url = auth.GetApiUrl(this.APIName).SetUrlKeyValue("srcFileName", this.FileName);
 4             using(var client = new WebClient()) {
 5                 try {
 6                     var result = client.UploadData(url, this.UploadData);
 7                     return Encoding.UTF8.GetString(result);
 8                 } catch(WebException ex) {
 9                     return Encoding.UTF8.GetString(ex.Response.GetResponseStream().GetBytes());
10                 }
11             }
12         }

原来是直接将文件的字节数组 Post 到特定格式的网址里, 真的是很晕,我熬夜到3点多,尽然是多此一举.

另外, 由于精力有限, 目前我只对照返回结果写了几个对应的实体, 其它的没有用到的,我不打算写, 如果各位有兴趣的话,可以反编译一下: AsNum.Aliexpress.API.dll 这个DLL, 源码我也不准备放出, 因为真的是很简单(只是有些繁琐而以), 有需要的可以自行反编译一下.

使用之前需要从菜单里设置一下 AppKey 和 SecretKey , 当然你需要有一个 Aliexpress 的账户.

软件标签: API 测试

软件截图

Aliexpress API 测试工具

    其他版本下载

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)

    下载帮助下载帮助西西破解版软件均来自互联网, 如有侵犯您的版权, 请与我们联系。

    TOP
    软件下载