BIMFACE二次開發(.NET)

BIMFACE開發一:服務端接口調用

說明

BIMFACE開發的重要內容之一就是調用服務端接口。可以官方文檔查看,注意服務端接口,不能在web端用js調用!

後臺幫助類

直接上代碼,本幫助類,目前只是寫了調用accesstoken的方法,後續還會增加。

using System; 
using System.IO; 
using System.Net;
using System.Text;

namespace Helper.BIMFACEHelper
{
    /// <summary>
    /// BIMFACE二次開發所用的公共方法
    /// 官方文檔 http://static.bimface.com/book/restful/articles/api/accesstoken.html?p=doc
    /// author:長安山南君,趙鋒力
    /// date:2019年1月11日22:28:48
    /// </summary>
    public class BIMFACEHelper
    {

        #region 獲取AccessToken
        /// <summary>
        /// 獲取AccessToken
        /// </summary>
        /// <param name="appKey">BIMFACE項目的appKey</param>
        /// <param name="appSecret">appSecret</param>
        /// <returns>AccessToken 字符串</returns>
        /// 成功:{"code":"success","message":null,"data":{"token":"xxxx-xxxx-xxxx-xxxx","expireTime":"2016-05-01 01:11:11"}}
        /// 失敗: {"code":"authentication.failed","message":"Invalid basic authentication token."}
        public string GetAccessToken(string appKey, string appSecret)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.bimface.com/oauth2/token");
            //按 官方文檔 構成參數
            string KeyAndSecret = appKey + ":" + appSecret;
            string AuthorizationPara = EncodeBase64("utf-8", KeyAndSecret); //對於KeyAndSecret , 採用GBK、utf-8、GB2312編碼結果是相同的。
            AuthorizationPara ="Basic "+AuthorizationPara;
            //post請求
            request.Method = "POST";
            request.ContentType = "application/json";
            request.Headers.Add("authorization", AuthorizationPara);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));

            string retString = myStreamReader.ReadToEnd();  //字符串類型的json,不用刻意轉換成json,也不能轉換成json對象。       
            //JsonResult myJson = new JsonResult();
            //myJson.Data = retString;
            //myJson.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
            return retString; //換回字符串,web前臺使用JSON.parse() 將字符串轉換成 json對象使用。
        }
        #endregion
        #region base64編碼和解碼
        /// <summary>
        /// base64編碼
        /// </summary>
        /// <param name="code_type">編碼類型</param>
        /// <param name="code">待編碼的字符串</param>
        /// <returns></returns>
        public static string EncodeBase64(string code_type, string code)
        {
            string encode = "";
            byte[] bytes = Encoding.GetEncoding(code_type).GetBytes(code);
            try
            {
                encode = Convert.ToBase64String(bytes);
            }
            catch
            {
                encode = code;
            }
            return encode;
        }
        /// <summary>
        /// base64解碼
        /// </summary>
        /// <param name="code_type">編碼類型</param>
        /// <param name="code">待編碼的字符串</param>
        /// <returns>編碼後的字符串</returns>
        public static string DecodeBase64(string code_type, string code)
        {
            string decode = "";
            byte[] bytes = Convert.FromBase64String(code);
            try
            {
                decode = Encoding.GetEncoding(code_type).GetString(bytes);
            }
            catch
            {
                decode = code;
            }
            return decode;
        }
        #endregion
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章