본문 바로가기
프로그램/자바

자바로 크로스 도메인 우회처리

by cbwstar 2021. 12. 14.
728x90
반응형
javascript
닫기
/** * 크로스 도메인 우회처리 * @param map ‌​* @return ‌​*/ ‌public static String processHTTP(Map<String,String> params ) throws Exception ​​​​{ ​​​​​​​​ ​​​​​​​​int statusCode = 0; ​​​​​​​​ ​​​​​​​​String url= params.get("url"); ​​​​​​​​ ​​​​​​​​logger.debug("url : " + url); ​​​​​​​​ ​​​​​​​​CloseableHttpClient httpclient = HttpClientBuilder.create().build(); ​​​​​​​​HttpPost httpPost = new HttpPost(url); ​​​​​​​​List<NameValuePair> nvps = makeParams(params); ​​​​​​​​ ​​​​​​​​try { ​​​​​​​​​​​​httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded; text/html; charset=UTF-8"); ​​​​​​​​​​​​httpPost.setHeader("Cache-Control", "no-cache"); ​​​​​​​​​​​​ ​​​​​​​​​​​​// 한글 인코딩을 위하여 인코딩 정보를 설정한다. ​​​​​​​​​​​​httpPost.setEntity(new UrlEncodedFormEntity(nvps, DEFAULT_ENCODING)); ​​​​​​​​​​​​ ​​​​​​​​​​​​CloseableHttpResponse response = httpclient.execute(httpPost); ​​​​​​​​​​​​statusCode = response.getStatusLine().getStatusCode(); ​​​​​​​​​​​​ ​​​​​​​​​​​​logger.debug("\nSending 'POST' request to URL : " + httpPost.getURI()); ​​​​​​​​​​​​logger.debug("Post parameters : " + httpPost.getEntity().toString()); ​​​​​​​​​​​​logger.debug("Response Code : " + statusCode ); ​​​​​​​​​​​​if( statusCode == 200){ ​​​​​​​​​​​​​​​​// 정상인 경우 메시지를 읽어 들여 그 결과를 리턴한다. ​​​​​​​​​​​​​​​​BufferedReader rd = new BufferedReader( new InputStreamReader(response.getEntity().getContent())); ​​​​​​​​​​​​​​​​StringBuffer result = new StringBuffer(); ​​​​​​​​​​​​​​​​String line = ""; ​​​​​​​​​​​​​​​​while ((line = rd.readLine()) != null) { ​​​​​​​​​​​​​​​​​​​​result.append(line); ​​​​​​​​​​​​​​​​} ​​​​​​​​​​​​​​​​return result.toString(); ​​​​​​​​​​​​} ​​​​​​​​​​​​ ​​​​​​​​} catch (Throwable e) { ​​​​​​​​​​​​throw new HttpException((new StringBuilder("오류가 발생하였습니다.")).append(statusCode).toString()); ​​​​​​​​} ​​​​​​​​if( statusCode != 200) ​​​​​​​​{ ​​​​​​​​​​​​throw new HttpException((new StringBuilder("오류가 발생하였습니다.")).append(statusCode).toString()); ​​​​​​​​} ​​​​​​​​ ​​​​​​​​return ""; ​​​​​​​​ ​​​​} ​​​​public static List<NameValuePair> makeParams(Map<String,String> params) throws Exception { ​​​​​​​​int hashSize = params.size(); ​​​​​​​​Iterator keyset = params.keySet().iterator(); ​​​​​​​​List <NameValuePair> nvps = new ArrayList <NameValuePair>(); ​​​​​​​​for (int i = 0; i < hashSize; i++) { ​​​​​​​​​​​​String key = (String) keyset.next(); ​​​​​​​​​​​​if(!key.equals("DataSetRowType") && !key.equals("url")) { ‌​​​​​​​​​​​​nvps.add(new BasicNameValuePair(key, EgovStringUtil.nvl(params.get(key)) )); ​​​​​​​​​​​​} ​​​​​​​​} ​​​​​​​​ ​​​​​​​​return nvps; ​​​​}
728x90
반응형


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."