/// <summary>
        /// 发起业务请求
        /// </summary>
        /// <typeparam name="Rs"></typeparam>
        /// <param name="request"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        public async Task <Rs> ExecuteAsync <Rs>(RqBase <Rs> request, string userName = null) where Rs : RsBase, new()
        {
            var restRequest  = this.GetRestRequest(request, userName);
            var restResponse = await this.RestClient.ExecuteTaskAsync(restRequest).ConfigureAwait(false);

            return(this.GetResponse <Rs>(restResponse));
        }
        /// <summary>
        /// 发起业务请求
        /// </summary>
        /// <typeparam name="Rs"></typeparam>
        /// <param name="request"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        public Rs Execute <Rs>(RqBase <Rs> request, string userName = null) where Rs : RsBase, new()
        {
            var restRequest  = this.GetRestRequest(request, userName);
            var restResponse = this.RestClient.Execute(restRequest);

            return(this.GetResponse <Rs>(restResponse));
        }
        private IRestRequest GetRestRequest <Rs>(RqBase <Rs> request, string userName)
            where Rs : IResponse
        {
            if (!string.IsNullOrWhiteSpace(userName))
            {
                request.UserName = userName;
            }
            var xml = XmlHelper.Serializer(request, encoding: this.RestClient.Encoding, showDeclaration: true, removeDefaultNameSpace: true);

            request.RequestContent = xml;
            var restRequest = new RestRequest(Method.POST);

            restRequest.AddParameter(new Parameter
            {
                Type       = ParameterType.RequestBody,
                DataFormat = DataFormat.None,
                Value      = xml,
                Name       = ""
            });
            return(restRequest);
        }