/// <summary> /// 初始化请求类库实例 /// </summary> /// <param name="config">config</param> private void InitRequestInstance(YouzikuPlusConfig config) { switch (config.RequestBehavior) { case RequestBehaviorEnum.HttpClient: HttpRequestPlusClient = new TPlusHttpClient(); break; case RequestBehaviorEnum.HttpWebRequest: HttpRequestPlusClient = new TPlusWebRequest(); break; } }
/// <summary> /// 构造一个YouzikuServicePlusClient /// </summary> /// <param name="apiKey">apiKey</param> /// <param name="host">host</param> public YouzikuServicePlusClient(string apiKey, string host = YouzikuServiceClientPlusHostString.Http) { if (string.IsNullOrEmpty(host)) { throw new ArgumentException(nameof(YouzikuPlusConfig) + " field host is null or Empty!"); } if (string.IsNullOrEmpty(apiKey)) { throw new ArgumentException(nameof(YouzikuPlusConfig) + " field ApiKey is null or Empty!"); } this._config = new YouzikuPlusConfig { Host = host.Trim(), ApiKey = apiKey.Trim() }; InitRequestInstance(); }
/// <summary> /// 构造一个YouzikuClient /// </summary> /// <param name="apiKey">apiKey</param> /// <param name="useHttps">host</param> public YouzikuServicePlusClient(string apiKey, bool useHttps) { if (string.IsNullOrEmpty(apiKey)) { throw new ArgumentException(nameof(YouzikuPlusConfig) + " field ApiKey is null or Empty!"); } this._config = new YouzikuPlusConfig { Host = useHttps ? YouzikuServiceClientPlusHostString.Https : YouzikuServiceClientPlusHostString.Http, ApiKey = apiKey.Trim(), UseHttps = useHttps }; InitRequestInstance(this._config); if (useHttps) { YouzikuPlusGlobal.Config.UseHttps(); } }
/// <summary> /// 构造一个YouzikuServicePlusClient /// </summary> /// <param name="config">config</param> public YouzikuServicePlusClient(YouzikuPlusConfig config) { if (config == null) { throw new ArgumentException(nameof(YouzikuPlusConfig) + " instance is null!"); } if (string.IsNullOrEmpty(config.Host)) { throw new ArgumentException(nameof(YouzikuPlusConfig) + " field Url is null or Empty!"); } if (string.IsNullOrEmpty(config.ApiKey)) { throw new ArgumentException(nameof(YouzikuPlusConfig) + " field ApiKey is null or Empty!"); } this._config = config; InitRequestInstance(); }
/// <summary> /// GetScopeFontface接口 /// </summary> /// <param name="param">param</param> /// <param name="config">config</param> /// <returns></returns> public static IDictionary <string, string> GetRamUnicodeScopeFontface(RamUnicodeScopeFontApiParam param, YouzikuPlusConfig config) { PlusParamValidate.GetRamUnicodeScopeFontface(param); var paramDic = new Dictionary <string, string> { { "ApiKey", config.ApiKey }, { "AccessKey", param.AccessKey }, { "Content", param.Content.Replace("&", string.Empty) }, { "Text", param.Text }, { "Tag", param.Tag }, { "UseRanFontFamily", param.UseRanFontFamily.ToString() }, { "Option[RanNumber]", param.Option.RanNumber.ToString() }, { "Option[RanEnglish]", param.Option.RanEnglish.ToString() }, { "Option[RanChinese]", param.Option.RanChinese.ToString() } }; return(paramDic); }
/// <summary> /// 通用请求CommonGetFontFaceAsync /// </summary> /// <param name="paramDic">请求参数</param> /// <param name="url">接口路径</param> /// <param name="config">config</param> /// <returns></returns> protected async Task <TResult> CommonGetFontFaceAsync <TResult>(IDictionary <string, string> paramDic, string url, YouzikuPlusConfig config) where TResult : class, new() { try { var jsonResult = await HttpRequestPlusClient.RequestAsync(url, TPlusHttpMethod.Post, paramDic, config.TimeOut); if (string.IsNullOrEmpty(jsonResult)) { throw new ArgumentException("接口响应null或Empty!"); } return(new JavaScriptSerializer().Deserialize <TResult>(jsonResult)); } catch (Exception ex) { throw ex; } }