Silverlight如何调用淘宝API
2012-06-19 13:57
429 查看
淘宝开放平台TOP并没有提供SL版本的SDK,其实是没有必要,也是不可能的。其原因有二:1、Siverlight默认不允许跨域访问,需要在被访问网站下面放置策略文件,Taobao不可能为我们放置一个策略文件的。2、你的taobao应用程序的appkey,appsecret,甚至是sessionkey都暴露在Silverlight前端了,这也太傻了吧!存在很大的安全隐患!SL直接调用Taobao Api是不可能的,怎么办呢?
其实,我们只要将调用taobao的代码放到我们的服务器端就可以了,服务器获取到数据后再传到前端去。而SL和Web服务器通讯最好的方法莫过于WCF RIA Service了(谁还有更好的方法?)。关于调用Taobao API的流程,参见我以前的文章。下面我们以淘宝开放平台用户Api为例,演示一下如何调用并在silverlight中显示。
1.新建一个Silverlight业务应用程序
2.解决方案中添加一个WCF RIA Services类型的项目。这种类型的项目,其实是两个类库项目,一个供SL引用,一个带.web后缀的供服务器端引用。
3.在2中的web项目中,添加一个DomainService,代码如下:
4.SL中调用TopService的域服务:
完成了,就这么简单。用到哪个api就在我们的TopService中添加,SL调用就好了!当然了,权限控制还是要做好的,参见:[Silverlight]Wcf Ria Services权限控制的实现!
其实,我们只要将调用taobao的代码放到我们的服务器端就可以了,服务器获取到数据后再传到前端去。而SL和Web服务器通讯最好的方法莫过于WCF RIA Service了(谁还有更好的方法?)。关于调用Taobao API的流程,参见我以前的文章。下面我们以淘宝开放平台用户Api为例,演示一下如何调用并在silverlight中显示。
1.新建一个Silverlight业务应用程序
2.解决方案中添加一个WCF RIA Services类型的项目。这种类型的项目,其实是两个类库项目,一个供SL引用,一个带.web后缀的供服务器端引用。
3.在2中的web项目中,添加一个DomainService,代码如下:
[EnableClientAccess()] public class TopService : DomainService { const string SERVICEURL = "http://gw.api.taobao.com/router/rest"; const string APPKEY = "your app key"; const string APPSECRET = "your app secret"; public Top.Api.Domain.User GetUser(string nick) { ITopClient client = new DefaultTopClient(SERVICEURL, APPKEY, APPSECRET); UserGetRequest req = new UserGetRequest(); //要查询的字段 req.Fields = "user_id,uid,nick,sex,buyer_credit,seller_credit,location,created"; req.Nick = nick; UserGetResponse res = client.Execute(req); //必要时传入Session key return res.User; } }
4.SL中调用TopService的域服务:
private void GetUser_Click(object sender, System.Windows.RoutedEventArgs e) { TopService.Web.TopContext tc = new TopService.Web.TopContext(); tc.GetUser(tbName.Text,(lo) => { this.userInfoGrid.DataContext = lo.Value; },null); }
完成了,就这么简单。用到哪个api就在我们的TopService中添加,SL调用就好了!当然了,权限控制还是要做好的,参见:[Silverlight]Wcf Ria Services权限控制的实现!
相关文章推荐
- 【零一】如何用代码爬抓电商数据(附淘宝API调用实例)
- 如何用代码爬抓电商数据(附淘宝API调用实例)
- 如何用代码爬抓电商数据(附淘宝API调用实例)
- 如何从Silverlight 代码调用Javascript 函数
- 求教:请问Android中,权限的实现与相应API的调用是如何实现的
- Silverlight如何与JS相互调用
- 如何调用FindWindow API获取主窗体
- 如何通过python调用新浪微博的API
- java调用淘宝api实例
- 如何从C#桌面应用程序中调用Windows 8的WinRT API (Metro API)
- 淘宝API调用 申请 获取session key
- 如何创建、发布Web Service和 C#WINFORM里如何调用WEB Service API
- SilverLight OOB模式与Com API交换的基础 和 C#编写Com 组件在SilverLight调用
- 如何在C++中增加给JavaScript调用的API 推荐
- 如何创建、发布Web Service和 C#WINFORM里如何调用WEB Service API (分享)
- 如何调用Android隐藏API
- Arcgis API for Silverlight如何加载天地图底图以及地方坐标系的偏门底图
- 关于如何调用淘宝的接口的教程步骤
- 一步一步学Silverlight 2系列(22):在Silverlight中如何用JavaScript调用.NET代码
- 如何动态调用之Java脚本API