Esempio n. 1
0
        /// <summary>
        /// 文件验章V2
        /// </summary>
        /// <param name="signCheckFileRequest"></param>
        /// <returns></returns>
        public SignCheckFileV2Response CheckFileV2(SignCheckFileV2Request request)
        {
            if (
                request.fileData == null || request.fileData.Length == 0 ||
                request.fileDataName == null || request.fileDataName.Trim() == string.Empty
                )
            {
                BaseSignResponse baseSignResponse = new BaseSignResponse();
                baseSignResponse.result_code    = "4001";
                baseSignResponse.result_message = "参数校验异常";
                throw new SignServerException("参数校验异常", baseSignResponse, JSONUtil.getJsonStringFromObject(request));
            }

            FileInfo info = new FileInfo();

            info.fileData = request.fileData;
            info.fileName = request.fileDataName;
            info.key      = "file";

            Dictionary <string, string> @params = new Dictionary <string, string>();

            @params.Add("file_name", request.fileDataName);

            SignCheckFileV2Response signCheckFileResponse = base.FileUpload <SignCheckFileV2Response>(ApiUrlConstant.SignCheck.CheckFileV2, info, @params);

            return(signCheckFileResponse);
        }
Esempio n. 2
0
        /// <summary>
        /// 文件上传
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public FileUploadResponse fileUpload(FileUploadRequest request)
        {
            if (
                request.fileData == null || request.fileData.Length == 0 ||
                request.fileDataName == null || request.fileDataName.Trim() == string.Empty
                )
            {
                BaseSignResponse baseSignResponse = new BaseSignResponse();
                baseSignResponse.result_code    = "4001";
                baseSignResponse.result_message = "参数校验异常";
                throw new SignServerException("参数校验异常", baseSignResponse, null);
            }

            FileInfo info = new FileInfo();

            info.fileData = request.fileData;
            info.fileName = request.fileName;
            info.key      = "file";

            Dictionary <string, string> @params = new Dictionary <string, string>();

            @params.Add("file_type", request.fileType);
            @params.Add("file_name", request.fileName);
            @params.Add("user_id", request.userId);
            FileUploadResponse fileUploadResponse = base.FileUpload <FileUploadResponse>(ApiUrlConstant.FileManager.FileUpload, info, @params);

            return(fileUploadResponse);
        }
Esempio n. 3
0
        /// <summary>
        /// 文件下载
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public bool downloadFile(FileDownloadRequest request)
        {
            bool isDownload = false;

            if (request.file_id == null || request.file_id.Trim() == string.Empty || request.file_name == null || request.file_name.Trim() == string.Empty)
            {
                BaseSignResponse baseSignResponse = new BaseSignResponse();
                baseSignResponse.result_code    = "4001";
                baseSignResponse.result_message = "参数校验异常";
                throw new SignServerException("参数校验异常", baseSignResponse, null);
            }
            string downloadUrl = baseUrl + ApiUrlConstant.FileManager.FileDownload + "?fileId=" + request.file_id + "&" + access_token_key + "=" + base.getToken().access_token;

            try
            {
                HttpWebRequest  httpWebRequest  = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(downloadUrl);
                HttpWebResponse httpWebResponse = (System.Net.HttpWebResponse)httpWebRequest.GetResponse();
                if (httpWebResponse.ContentLength == -1)
                {
                    throw new SignServerException("文件下载异常", null, null);
                }
                Stream st    = httpWebResponse.GetResponseStream();
                Stream so    = new System.IO.FileStream(request.file_name, System.IO.FileMode.Create);
                byte[] by    = new byte[1024];
                int    osize = st.Read(by, 0, (int)by.Length);
                while (osize > 0)
                {
                    so.Write(by, 0, osize);
                    osize = st.Read(by, 0, (int)by.Length);
                }
                so.Close();
                st.Close();
                httpWebResponse.Close();
                httpWebRequest.Abort();
                isDownload = true;
            }
            catch (Exception e) {
                throw new SignServerException("文件下载异常", null, e.Message);
            }
            return(isDownload);
        }
Esempio n. 4
0
        /// <summary>
        /// 文件上传功能
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="url"></param>
        /// <param name="fileInfo"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        protected T FileUpload <T>(string apiUrl, FileInfo fileInfo, Dictionary <string, string> parameters) where T : class
        {
            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add(token_key, getToken().access_token);
            List <FileInfo> files = new List <FileInfo>();

            files.Add(fileInfo);
            string responseStr = HttpSendUtil.SendHttpForm(baseUrl + apiUrl, headers, files, parameters);
            // 转换为 response 对象
            BaseSignResponse response = JSONUtil.getObjectFromJsonString <BaseSignResponse>(responseStr);

            // 抛出 网关异常
            if (response.return_code != "1000")
            {
                throw new SignApplicationException(response.return_message, response, null);
            }
            // 抛除 服务异常
            if (response.result_code != "0")
            {
                throw new SignServerException(response.result_message, response, null);
            }
            return(response.GetData <T>());
        }
Esempio n. 5
0
        /// <summary>
        /// 发起 http 请求并
        /// </summary>
        /// <typeparam name="T">响应数据实体对象</typeparam>
        /// <param name="request">请求对象</param>
        /// <returns></returns>
        protected T Send <T>(SignRequest request) where T : class
        {
            // 创建url
            string url = URLUtil.ToPaeameter(baseUrl + request.apiUrl, request.parames);
            // 头部
            Dictionary <string, string> headers = new Dictionary <string, string>();
            string body = JSONUtil.getJsonStringFromObject(request.requestBody);

            if (request.needSign)
            {
                string sign = SignUtil.createSign(body, appSecret);
                headers.Add(sign_key, sign);
                //Console.WriteLine("请求sign:" + sign);
            }
            if (request.needToken)
            {
                headers.Add(token_key, getToken().access_token);
            }

            // 发起http 请求
            string responseStr = HttpSendUtil.SentHttpRequest(url, request.httpMethod, headers, request.contentType, body);
            // 转换为 response 对象
            BaseSignResponse response = JSONUtil.getObjectFromJsonString <BaseSignResponse>(responseStr);

            // 抛出 网关异常
            if (response.return_code != "1000")
            {
                throw new SignApplicationException(response.return_message, response, body);
            }
            // 抛除 服务异常
            if (response.result_code != "0")
            {
                throw new SignServerException(response.result_message, response, body);
            }
            return(response.GetData <T>());
        }
 public SignServerException(string message, BaseSignResponse response, string requestBody) : base(message)
 {
     this.result_code    = response.result_code;
     this.result_message = response.result_message;
     this.request_body   = requestBody;
 }
 public SignApplicationException(string message, BaseSignResponse response, string requestBody) : base(message)
 {
     this.return_code    = response.return_code;
     this.return_message = response.return_message;
     this.request_body   = requestBody;
 }