/// <summary> /// Sync /// </summary> /// <typeparam name="Response"></typeparam> /// <typeparam name="Request"></typeparam> /// <param name="req"></param> /// <returns></returns> public static Response SyncCallEncrypt <Response, Request>(Request req) where Response : IDisposable, new() { Response response = new Response(); WebClientEx wc = new WebClientEx(); try { //해더 셋팅 wc.Encoding = Encoding.UTF8; wc.Headers.Add("Accept-Language", "utf-8"); wc.Headers.Add("Accept", "text/html, application/xhtml+xml, */*"); wc.Headers.Add("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"); //파라미터 직렬화 string sReqSerial = new JavaScriptSerializer().Serialize(req); //암호화 string sEncrpt = EncodingLib.AesEncrypt(sReqSerial, RequestBaseModel.GidParam); NameValueCollection nvc = new NameValueCollection(); nvc.Add("encStr", sEncrpt); nvc.Add("clientPe", RequestBaseModel.RsaParam); wc.QueryString = nvc; //상세 API URL 설정 string targetUrl = "bt.arbitrage.listen.dp/proc.go"; //API 요청 byte[] bt = wc.UploadValues(ConfigLib.ApiUrl + targetUrl, new NameValueCollection()); //JSON 파싱 response = new JavaScriptSerializer().Deserialize <Response>(Encoding.UTF8.GetString(bt)); //API 결과 코드 값 string resultStrCode = GetPropertyValue(response, ResultStrCode); //API 결과 메시지 string resultMsg = GetPropertyValue(response, ResultMsg); if (resultStrCode != "000") { throw new Exception("API resultMsg : " + resultMsg); } } catch (Exception ex) { throw ex; } finally { wc.Dispose(); response.Dispose(); } return(response); }
/// <summary> /// Sync /// </summary> /// <typeparam name="Response"></typeparam> /// <typeparam name="Request"></typeparam> /// <param name="req"></param> /// <returns></returns> public static Response SyncCallWeb <Response, Request>(Request req) where Response : IDisposable, new() { Response response = new Response(); WebClientEx wc = new WebClientEx(); try { //해더 셋팅 wc.Encoding = Encoding.UTF8; wc.Headers.Add("Accept-Language", "utf-8"); wc.Headers.Add("Accept", "text/html, application/xhtml+xml, */*"); wc.Headers.Add("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"); //파라미터 세팅 wc.QueryString = GetParam(req); //상세 API URL 설정 string targetUrl = GetPropertyValue(req, TargetUrl); //API 요청 //byte[] bt = wc.UploadValues("http://wtest.xlogic.co.kr/" + targetUrl, new NameValueCollection()); byte[] bt = wc.UploadValues(ConfigLib.WebUrl + targetUrl, new NameValueCollection()); //JSON 파싱 response = new JavaScriptSerializer().Deserialize <Response>(Encoding.UTF8.GetString(bt)); //API 결과 코드 값 string resultStrCode = GetPropertyValue(response, ResultStrCode); //API 결과 메시지 string resultMsg = GetPropertyValue(response, ResultMsg); if (resultStrCode != "000") { throw new Exception("API resultMsg : " + resultMsg); } } catch (Exception ex) { throw ex; } finally { wc.Dispose(); response.Dispose(); } return(response); }