校內網API的.net版本XiaoNei.Net 1.0(非官方)_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:Asp.net Mvc Framework可以在Controller中使用的Url.Action方法
      原本的Url.Action方法是利用RouteCollection來實現Url的Routing的。 所以這里用一個擴展方法重現一下 以下為引用的內容:

      校內API開放也有一段時間了,也沒有太關注,正好新版本的SNS開發到了API這一塊,正好借鑒一下XiaoNei,FB,MySpace的API。

      且聞校內API比較有前途,最近的API編程大賽也比較火,而且人氣也較旺

      于是順手用了一下校內的API,發現校內只提供了php與jsp的API卻并未提供.net。

      當然也有不少朋友封裝了.net 的API,但我感覺使用上略見復雜,于是我自己封裝了一下。

      DLL文件、源碼、演示下載:http://www.codeplex.com/xn/Release/ProjectReleases.aspx?ReleaseId=16307

      Codeplex開源項目 :http://www.codeplex.com/xn/

      開始說明:

      初始化API的方法如下:

      一、最簡單的,頁面繼承XPage類或XMasterPage類


      Code highlighting produced by Actipro CodeHighlighter (freeware)
      http://www.CodeHighlighter.com/

      public partial class Friends_get : XPage {
      protected void Page_Load(object sender, EventArgs e) {
      }
      }

      二、如果不符合你的條件的話,可以使當前頁面實現IXHandler接口并在調用 XiaoNeiApi.Init(this)方法

      如我要在Asp.net MVC中使用XiaoNei.Net則我用以下代碼讓Controller支持校內網的API:


      Code highlighting produced by Actipro CodeHighlighter (freeware)
      http://www.CodeHighlighter.com/

      public class HomeController:Controller,IXHandler{
      public XiaoNeiApi Api { get; set; }
      public HomeController(){
      XiaoNeiApi.Init(
      this);
      }
      }

      三、如果還是習慣那種老式的方法也可以,當然也可以寫在Page_Load里,個人習習慣,不過我感覺這樣的話代碼真是不少


      Code highlighting produced by Actipro CodeHighlighter (freeware)
      http://www.CodeHighlighter.com/

      public class XPage : System.Web.UI.Page{
      public XiaoNeiApi Api { get; set; }
      protected override void OnInit(EventArgs e) {
      base.OnInit(e);
      string secret = Request.QueryString["xn_sig_session_key"].ToString();
      secret
      = Server.UrlEncode(secret);
      string apiKey = Request.QueryString["xn_sig_api_key"];
      this.Api = new XiaoNeiApi(apiKey, secret);
      }
      }

      API使用方法如下:

      在初始化之后,即默認你繼承了XPage

      則頁面類中會有一個Api屬性。

      如果你想調用users.getInfo方法,則Api.Users.getInfo()就可以得到

      如果你想調用friends.areFriends方法則Api.Friends.areFriends("","")進行判斷

      具體的使用方法可以在演示中看到

      其它擴展:

      數據庫訪問:

      這里我做了一個比較方便的方法


      Code highlighting produced by Actipro CodeHighlighter (freeware)
      http://www.CodeHighlighter.com/


      DataBaseExecutor dbe
      = new DataBaseExecutor(
      new OleDbDataOpen(CONNECTIONSTRING)
      );
      DataList1.DataSource
      = dbe.GetTable("select * from [user] where role=@r and [type]=@t"
      ,
      "@r",1
      ,
      "@t","admin");

      DataBaseExecutor 除了可以用GetTable外還有直接執行的Execute方法以及返回首行首列的ExecuteScalar方法

      DataBaseExecutor使用什么數據庫適配器全在于它的構造函數,在程序中我也提供了一個SqlServer的類SqlDataOpen。使用時只要將上面的OleDbDataOpen替換就行了。

      出現錯誤的解決方法:

      本程序為校內網應用程序,請登錄后再使用:通常在本地調試時出現,只要在Url的QueryString加上你的 xn_sig_session_key與xn_sig_api_key就行了獲取的方法是在你校內應用上點右鍵,得到你IFrame中的地址,看看它的查 詢字符串(就是?后面的內容),復制過來帖在地址后面即可

      其它說明會一點一點補充的

      另:

      多謝 許哲兄 是他的API的封裝使我產生了做這個的念頭
      命名與基本的初始化都始于許哲兄的API

      校內群http://group.xiaonei.com/GetTribe.do?id=249310165
      開發者:http://www.cnblogs.com/chsword/

      本程序完全開源可以隨意更改,可以不保留作者信息。

      分享:ASP.NET中常用的26個優化性能方法
      1. 數據庫訪問性能優化    數據庫的連接和關閉 娛樂訪問數據庫資源需要創建連接、打開連接和關閉連接幾個操作。這些過程需要多次與數據庫交換信息以通過身份驗證,比較耗費服務器資源。ASP.

      來源:模板無憂//所屬分類:.Net教程/更新時間:2008-08-22
      相關.Net教程