• Silverlight如何调用淘宝API


         淘宝开放平台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,代码如下:

    [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权限控制的实现

  • 相关阅读:
    hdu 1443 Joseph 约瑟夫环
    hdu 1568 Fibonacci 对数。。
    UILineBreakMode
    Android RelativeLayout 动态添加组件
    iOS 让view触发点击事件
    读取plist文件数据
    [转]Android获取SD卡视频音频文件
    ubuntu下vim修复
    DMO(DirectX Media Object)的工程创建过程及其调用方式
    《Windows程序设计》笔记 —— Chapter One
  • 原文地址:https://www.cnblogs.com/slmk/p/2554694.html
Copyright © 2020-2023  润新知