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