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);
}
}
}
}