这个工具借用了 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 的账户.






















大小: 8KB
大小: 89.5M
终端仿真器 SecureCRTv7.1.1.264 最新版
串口调试小助手1.3 免费版
WinHex 十六进制编辑器v20.2 SR-5 绿色中文注册版
小旋风ASP服务器安装版
16进制转换工具V1.0 中文绿色版
Adobe AIRV33.1.1.932 官方最新版
github离线安装包64位版V2.9.11官方最新版(github desktop)
MSDN Library Visual Studio 6.0(VC、VB、VF、VJ)中文版win32开发人员必备
版本控制软件(SourceTree)v3.4.6 官方最新版
Memory Analyzer (MAT)V1.01 免费绿色版
Delphi Distillerv1.85绿色版
IBM内存检测工具(IBM Thread and Monitor Dump Analyzer for Java)V4.3.3 绿色版
.NETv3.0 可再发行组件包
一键安装JSP环境安装版
slave4j(基于eclipse插件的java代码生成器)V1.0.0 正式版
Auto DebugProfessional 5.6.5.18 中文绿色版
Understand For C++V1.4.319英文安装版