您的位置:首页 > 其它

Aliexpress API 测试工具

2013-08-30 13:52 246 查看

Aliexpress API 测试工具

上回简单说了 Aliexpress API 的认证流程, 这回在奉送一个小工具, API 测试工具.

View Code
public class OrderQueryList : MethodBase<OrderList> {

protected override string APIName {

get { return "api.findOrderListQuery"; }

}

private int pageSize = 50;

[ParamName("pageSize", Required = true)]

public int PageSize {

get {

return pageSize;

}

set {

this.pageSize = value < 1 ? 1 : (value > 50 ? 50 : value);

}

}

private int page = 1;

[ParamName("page", Required = true)]

public int Page {

get {

return this.page;

}

set {

this.page = value < 1 ? 1 : value;

}

}

[ParamName("createDateStart")]

[AliDateTimeParamFormatter("MM/dd/yyyy")]

public DateTime? CreateBegin { get; set; }

[ParamName("createDateEnd")]

[AliDateTimeParamFormatter("MM/dd/yyyy")]

public DateTime? CreateEnd { get; set; }

[ParamName("orderStatus")]

public OrderStatus? Status { get; set; }

}

带 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,未找到文件.

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

View Code
[NeedAuth]
public override string GetResult(Auth auth) {
var url = auth.GetApiUrl(this.APIName).SetUrlKeyValue("srcFileName", this.FileName);
using(var client = new WebClient()) {
try {
var result = client.UploadData(url, this.UploadData);
return Encoding.UTF8.GetString(result);
} catch(WebException ex) {
return Encoding.UTF8.GetString(ex.Response.GetResponseStream().GetBytes());
}
}
}

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

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

使用之前需要从菜单里设置一下 AppKey 和 SecretKey , 当然你需要有一个 Aliexpress 的账户.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: