using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using IStation.Bimface; namespace IStation { /// /// AccessToken /// public sealed partial class BimfaceClient { //令牌请求地址 private const string _accesstokenurl = @"https://api.bimface.com/oauth2/token"; /// /// 获取AccessToken /// public string GetAccessToken() { if (string.IsNullOrEmpty(_accesstoken) || _expiretime.ValidAccessTokenExpiration(DateTime.Now)) { getAccessToken(); } return _accesstoken; } //获取AccessToken,内部调用 private void getAccessToken() { using(var httpClient=new HttpClient()) { httpClient.DefaultRequestHeaders.Add("Method","Post"); var keyValueHeader = new HttpHeaders().GetBasicAuthorHeader(_appkey, _appsecret); httpClient.DefaultRequestHeaders.Add(keyValueHeader.Key, keyValueHeader.Value); var response = httpClient.PostAsync(_accesstokenurl,null).Result; response.EnsureSuccessStatusCode(); var responsetext = response.Content.ReadAsStringAsync().Result; var result=JsonHelper.Json2Object>(responsetext); if (result.code != Constants.Success) { throw new BimfaceException(result.code); } _accesstoken = result.data.token; _expiretime.SetAccessTokenExpireTime(result.data.expireTime); } } } }