/// <summary> /// 初始化请求类库实例 /// </summary> /// <param name="config">config</param> private void InitRequestInstance(YouzikuConfig config) { switch (config.RequestBehavior) { case RequestBehaviorEnum.HttpClient: HttpRequestClient = new THttpClient(); break; case RequestBehaviorEnum.HttpWebRequest: HttpRequestClient = new TWebRequest(); break; } }
/// <summary> /// GetFontface接口 /// </summary> /// <param name="param">param</param> /// <param name="config">config</param> /// <returns></returns> public static IDictionary <string, string> GetFontface(FontFaceParam param, YouzikuConfig config) { ParamValidate.GetFontface(param); var paramDic = new Dictionary <string, string> { { "ApiKey", config.ApiKey }, { "AccessKey", param.AccessKey }, { "Content", param.Content.Replace("&", string.Empty) }, { "Tag", param.Tag }, { "UseRanFontFamily", param.UseRanFontFamily.ToString() } }; return(paramDic); }
/// <summary> /// 构造一个YouzikuClient /// </summary> /// <param name="apiKey">apiKey</param> /// <param name="host">host</param> public YouzikuServiceClient(string apiKey, string host = YouzikuServiceClientHostString.Http) { if (string.IsNullOrWhiteSpace(host)) { throw new ArgumentException(nameof(YouzikuConfig) + " field host is null or Empty!"); } if (string.IsNullOrWhiteSpace(apiKey)) { throw new ArgumentException(nameof(YouzikuConfig) + " field ApiKey is null or Empty!"); } this._config = new YouzikuConfig { Host = host.Trim(), ApiKey = apiKey.Trim() }; InitRequestInstance(this._config); }
/// <summary> /// 构造一个YouzikuClient /// </summary> /// <param name="apiKey">apiKey</param> /// <param name="useHttps">host</param> public YouzikuServiceClient(string apiKey, bool useHttps) { if (string.IsNullOrEmpty(apiKey)) { throw new ArgumentException(nameof(YouzikuConfig) + " field ApiKey is null or Empty!"); } this._config = new YouzikuConfig { Host = useHttps ? YouzikuServiceClientHostString.Https : YouzikuServiceClientHostString.Http, ApiKey = apiKey.Trim(), UseHttps = useHttps }; InitRequestInstance(this._config); if (useHttps) { YouzikuGlobal.Config.UseHttps(); } }
/// <summary> /// 构造一个YouzikuClient /// </summary> /// <param name="config">config</param> public YouzikuServiceClient(YouzikuConfig config) { if (config == null) { throw new ArgumentException(nameof(YouzikuConfig) + " instance is null!"); } if (string.IsNullOrEmpty(config.Host)) { throw new ArgumentException(nameof(YouzikuConfig) + " field Url is null or Empty!"); } if (string.IsNullOrEmpty(config.ApiKey)) { throw new ArgumentException(nameof(YouzikuConfig) + " field ApiKey is null or Empty!"); } this._config = config; InitRequestInstance(); }
/// <summary> /// GetCustomPathFontFace 自定义路径接口 /// </summary> /// <param name="param">param</param> /// <param name="config">config</param> /// <returns></returns> public static IDictionary <string, string> GetCustomPathFontFace(BatchCustomPathWoffFontFaceParam param, YouzikuConfig config) { ParamValidate.CreateCustomPathBatchWoffWebFont(param); //builder batch param var paramDic = new Dictionary <string, string> { { "ApiKey", config.ApiKey } }; for (var i = 0; i < param.Datas.Count; i++) { paramDic.Add($"Datas[{i}][AccessKey]", param.Datas[i].AccessKey); paramDic.Add($"Datas[{i}][Url]", param.Datas[i].Url); paramDic.Add($"Datas[{i}][Content]", param.Datas[i].Content.Replace("&", string.Empty)); } return(paramDic); }
/// <summary> /// GetBatchFontFace接口 /// </summary> /// <param name="param">param</param> /// <param name="config">config</param> /// <returns></returns> public static IDictionary <string, string> GetBatchFontFace(BatchFontFaceParam param, YouzikuConfig config) { ParamValidate.GetBatchFontFace(param); //builder batch param var paramDic = new Dictionary <string, string> { { "ApiKey", config.ApiKey } }; for (var i = 0; i < param.Tags.Count; i++) { paramDic.Add($"Tags[{i}][AccessKey]", param.Tags[i].AccessKey); paramDic.Add($"Tags[{i}][Tag]", param.Tags[i].Tag); paramDic.Add($"Tags[{i}][Content]", param.Tags[i].Content.Replace("&", string.Empty)); paramDic.Add($"Tags[{i}][UseRanFontFamily]", param.Tags[i].UseRanFontFamily.ToString()); } return(paramDic); }
/// <summary> /// 通用请求GetFontFace /// </summary> /// <param name="paramDic">请求参数</param> /// <param name="url">接口路径</param> /// <param name="config">config</param> /// <returns></returns> protected TResult CommonGetFontFace <TResult>(IDictionary <string, string> paramDic, string url, YouzikuConfig config) where TResult : class, new() { try { var jsonResult = HttpRequestClient.Request(url, THttpMethod.Post, paramDic, config.TimeOut); if (string.IsNullOrEmpty(jsonResult)) { throw new ArgumentException("接口响应null或Empty!"); } return(new JavaScriptSerializer().Deserialize <TResult>(jsonResult)); } catch (Exception ex) { throw ex; } }