淘宝开放平台开发文档
/ 平台技术-.NET SDK使用说明
平台技术-.NET SDK使用说明
环境依赖
- .NET Framework 2.0 及以上 (不支持Windows Phone平台)
使用示例
获取淘宝当前系统时间
ITopClient client = new DefaultTopClient("http://gw.api.taobao.com/router/rest", "appkey", "appsecret", "json");
TimeGetRequest req = new TimeGetRequest();
TimeGetResponse rsp = client.Execute(req);
Console.WriteLine(rsp.Body);获取单笔交易详情
ITopClient client = new DefaultTopClient("http://gw.api.taobao.com/router/rest", "appkey", "appsecret", "json");
TradeFullinfoGetRequest req = new TradeFullinfoGetRequest();
req.Fields = "tid,type,status,payment,orders";
req.Tid = 123456789L;
TradeFullinfoGetResponse rsp = client.Execute(req, sessionKey);
Console.WriteLine(rsp.Body);监听实时消息通知
TmcClient client = new TmcClient("app_key", "app_secret", "default");
client.OnMessage += (s, e) =>
{
try
{
Console.WriteLine(e.Message.Content);
Console.WriteLine(e.Message.Topic);
// 默认不抛出异常则认为消息处理成功
}
catch (Exception exp)
{
Console.WriteLine(exp.StackTrace);
e.Fail(); // 消息处理失败回滚,服务端需要重发
}
};
client.Connect("ws://mc.api.taobao.com/");批量调用API
BatchTopClient client = new BatchTopClient("http://gw.api.taobao.com/router/batch", "appkey", "appsecret", "json");
TimeGetRequest timeRequest = new TimeGetRequest();
AppipGetRequest ipRequest = new AppipGetRequest();
TopBatchRequest batch = new TopBatchRequest();
batch.AddRequest(timeRequest).AddRequest(ipRequest);
TopBatchResponse rsp = client.Execute(batch);
Console.WriteLine(rsp.Body);服务地址
API服务地址

消息服务地址
高级功能
不解释响应字符串为对象(这时候XxxResponse包含的对象为null)
DefaultTopClient.SetDisableParser(true)
采用精简化的JSON结构返回,去除多余JSON节点
DefaultTopClient.SetUseSimplifyJson(true)
取消API调用日志打点
DefaultTopClient.SetDisableTrace(true)
忽略HTTPS证书检查(建议只在测试环境打开)
DefaultTopClient.SetIgnoreSSLCheck(true)
取消响应GZIP压缩功能(GZIP压缩功能可以显著的减少网络传输,强烈建议不要取消)
DefaultTopClient.SetUseGzipEncoding(false)
设置HTTP连接超时和读超时时间(网络环境差的情况下可以适当增大)
// HTTP等待请求开始返回的超时时间:默认20秒 DefaultTopClient.SetTimeout(20000L) // HTTP等待读取数据完成的超时时间:默认60秒 DefaultTopClient.SetReadWriteTimeout(60000L)
修改日志打点存储路径
DefaultTopLogger.FilePath = "c:/tmp/topsdk.log";
API调用出错自动重试(一般情况下ISP类的错误是可以重试成功的)
AutoRetryTopClient client = new AutoRetryTopClient("http://gw.api.taobao.com/router/rest", "appkey", "appsecret", "json");
client.SetMaxRetryCount(3);
client.SetRetryWaitTime(100L);
TimeGetRequest request = new TimeGetRequest();
TimeGetResponse response = client.Execute(request);
if (!response.IsError) {
Console.WriteLine(response.Body);
}API调用就近路由(根据API发起调用所在地选择就近的TOP机房进行调用)
ClusterTopClient client = new ClusterTopClient("http://gw.api.taobao.com/router/rest", "appkey", "appsecret", "json");
TimeGetRequest request = new TimeGetRequest();
TimeGetResponse response = client.Execute(request);
Console.WriteLine(response.Body);注意事项
- ITopClient的实现类都是线程安全的,所以没有必要每次API请求都新建一个ITopClient实现类
- 创建ITopClient实现类的实例时,指定format=json,相比xml格式,可以减少数据传输量,提升API请求效率
FAQ
- 关于此文档暂时还没有FAQ
