mjon_git/src/main/webapp/sendRESTAPI_test_r1_send.jsp

270 lines
12 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@page import="java.io.InputStreamReader"%>
<%@page import="java.io.BufferedReader"%>
<%@page import="org.apache.http.HttpResponse"%>
<%@page import="org.apache.http.client.methods.HttpPost"%>
<%@page import="org.apache.http.impl.client.HttpClients"%>
<%@page import="org.apache.http.client.HttpClient"%>
<%@page import="org.apache.http.HttpEntity"%>
<%@page import="java.net.URLEncoder"%>
<%@page import="org.apache.http.entity.ContentType"%>
<%@page import="org.apache.http.entity.mime.content.FileBody"%>
<%@page import="java.io.File"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.nio.charset.Charset"%>
<%@page import="org.apache.http.entity.mime.HttpMultipartMode"%>
<%@page import="org.apache.http.entity.mime.MultipartEntityBuilder"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@ page language="java" contentType="text/html; charset=utf-8 " pageEncoding="utf-8"%>
<%
try{
//기본 설정값
//final String encodingType = "utf-8";
final String encodingType = "UTF-8";
final String boundary = "____boundary____";
final String mberId = "goodgkdus";
final String accessKey = "0367a25ec370d1141898a0b9767103";
/**************** 문자전송하기 예제 ******************/
/* "result_code":결과코드,"message":결과문구, */
/* "msg_id":메세지ID,"error_cnt":에러갯수,"success_cnt":성공갯수 */
/* 동일내용 > 전송용 입니다.
/******************** 인증정보 ********************/
//String sms_url = "https://apis.aligo.in/send/"; // 전송요청 URL
//String sms_url = "https://api.munjaon.co.kr:9998/api/accessTest/Test"; // 전송요청 URL
//String sms_url = "https://api.munjaon.co.kr:9998/api/accessKey/SendMsg"; // 전송요청 URL
String sms_url = "http://localhost:8088/api/accessKey/SendMsg"; // 전송요청 URL
Map<String, String> sms = new HashMap<String, String>();
sms.put("mberId", mberId); // SMS 아이디
sms.put("accessKey", accessKey); //인증키
/******************** 인증정보 ********************/
//임시 - 테스트용 시작
//String p_mberId = request.getParameter("p_mberId"); //발신번호
//String p_accessKey = request.getParameter("p_accessKey"); //수신번호
//sms.put("mberId", p_mberId); // SMS 아이디
//sms.put("accessKey", p_accessKey); //인증키
//임시 - 테스트용 끝
/******************** 전송정보 ********************/
//전달 받은 값
//필수값
String p_callFrom = request.getParameter("p_callFrom"); //발신번호
String p_callToList = request.getParameter("p_callToList"); //수신번호
//String p_eachPrice = request.getParameter("p_eachPrice"); //전송문자 개별가격
//String p_fileCnt = request.getParameter("p_fileCnt"); //첨부파일갯수
//String p_sPrice = request.getParameter("p_sPrice"); //단문문자단가
//String p_totPrice = request.getParameter("p_totPrice"); //총결제금액
//String p_txtReplYn = request.getParameter("p_txtReplYn"); //치환문자 여부 Y//N
String p_txtReplYn = "N"; //치환문자 여부 - 초기 지원안함
String p_msgType = request.getParameter("p_msgType"); //문자타입 4-단문,5-URL,6-MMS,7-BARCODE,8-카카오알림톡
//String p_msgKind = request.getParameter("p_msgKind"); //N-일반,A-광고,C-선거
String p_msgKind = "N"; //N-일반,A-광고,C-선거 - 초기 지원안함
String p_smsTxt = request.getParameter("p_smsTxt"); //SMS용 메시지본문
//선택값
//String p_mmsPrice = request.getParameter("p_mmsPrice"); //mms단가
//String p_mPrice = request.getParameter("p_mPrice"); //장문문자단가
//String p_spamStatus = request.getParameter("p_spamStatus"); //스팸문자 유무
//예약문자의 경우(선택값)
String p_reserveYn = request.getParameter("p_reserveYn"); //예약문자 여부 N or Y
String p_divideCnt = request.getParameter("p_divideCnt"); //분할문자 건수
String p_divideTime = request.getParameter("p_divideTime"); //분할문자 간격
String p_reqDate = request.getParameter("p_reqDate"); //예약시간
//치환문자일경우(선택값) - 치환문자일 경우 txtReplYn=Y일때 필수 - 초기 지원안함
//String p_nameList = request.getParameter("p_nameList"); //치환 이름 리스트 String[]
//String p_rep1List = request.getParameter("p_rep1List"); //치환 문자1 리스트 String[]
//String p_rep2List = request.getParameter("p_rep2List"); //치환 문자2 리스트 String[]
//String p_rep3List = request.getParameter("p_rep3List"); //치환 문자3 리스트 String[]
//String p_rep4List = request.getParameter("p_rep4List"); //치환 문자4 리스트 String[]
//String p_shortMsgCnt= request.getParameter("p_shortMsgCnt"); //단문 건수
//String p_longMsgCnt = request.getParameter("p_longMsgCnt"); //장문 건수
//String p_imgMsgCnt = request.getParameter("p_imgMsgCnt"); //이미지 건수
//이미지일경우(선택값) - 초기 지원안함
//String p_imgFilePath= request.getParameter("p_imgFilePath"); //그림 이미지 경로 String[]
//String p_imgFileId = request.getParameter("p_imgFileId"); //이미지 atchId 배열 String[]
//String p_templateYn = request.getParameter("p_templateYn"); //이미지 에디터 사용여부 String[]
/*
sms.put("msg", "%고객명%님. 안녕하세요. API TEST SEND"); // 메세지 내용
sms.put("receiver", "01111111111,01111111112"); // 수신번호
sms.put("destination", "01111111111|담당자,01111111112|홍길동"); // 수신인 %고객명% 치환
sms.put("sender", ""); // 발신번호
sms.put("rdate", ""); // 예약일자 - 20161004 : 2016-10-04일기준
sms.put("rtime", ""); // 예약시간 - 1930 : 오후 7시30분
sms.put("testmode_yn", "Y"); // Y 인경우 실제문자 전송X , 자동취소(환불) 처리
sms.put("title", "제목입력"); // LMS, MMS 제목 (미입력시 본문중 44Byte 또는 엔터 구분자 첫라인)
*/
//전송내역조회
//(필수)
String p_msgGroupId = request.getParameter("p_msgGroupId"); //메시지 group id
//(선택)
String p_page = request.getParameter("p_page"); //페이지번호 기본-1
String p_pageSize = request.getParameter("p_pageSize"); //페이지당 출력갯수-30(30~500)
String p_startDate = request.getParameter("p_startDate"); //조회시작일자-기본값 오늘
String p_endDate = request.getParameter("p_endDate"); //조회마감일자-기본값 내일
//REST API 주소 받기
String p_api_type = request.getParameter("p_api_type").toUpperCase(); //api 호출 타입 msg,mass,hstry, hstryDetail,, myData
System.out.println("p_api_type");
System.out.println(p_api_type);
boolean b_is_send = true; //발송 처리 여부
switch (p_api_type) {
case "MSG":
//System.out.println("일반메세지발송");
sms_url = "http://192.168.0.59:8088/api/accessKey/SendMsg"; // 전송요청 URL
sms_url = "http://192.168.0.59:8088/api/send/sendMsg"; // 전송요청 URL
sms_url = "http://localhost:8088/api/send/sendMsg"; // 전송요청 URL
//추가 전송 데이터
sms.put("callFrom", p_callFrom); // 발신번호
sms.put("callToList", p_callToList); // 수신번호
sms.put("msgType", p_msgType); // 문자타입 4-단문,5-URL,6-MMS,7-BARCODE,8-카카오알림톡
sms.put("smsTxt", p_smsTxt); //SMS용 메시지본문
sms.put("reserveYn", p_reserveYn); //예약문자 여부 N or Y
sms.put("divideCnt", p_divideCnt); //분할문자 건수
sms.put("divideTime", p_divideTime); //분할문자 간격
sms.put("reqDate", p_reqDate); //예약시간
//System.out.println("일반메세지발송");
break;
case "MASS":
System.out.println("대량메세지발송");
sms_url = "http://localhost:8088/api/accessKey/mass"; // 전송요청 URL
sms_url = "http://localhost:8088/api/send/sendMsgs"; // 전송요청 URL
//추가 전송 데이터
sms.put("callFrom", p_callFrom); // 발신번호
sms.put("callToList", p_callToList); // 수신번호
sms.put("msgType", p_msgType); // 문자타입 4-단문,5-URL,6-MMS,7-BARCODE,8-카카오알림톡
sms.put("smsTxt", p_smsTxt); //SMS용 메시지본문
sms.put("reserveYn", p_reserveYn); //예약문자 여부 N or Y
sms.put("divideCnt", p_divideCnt); //분할문자 건수
sms.put("divideTime", p_divideTime); //분할문자 간격
sms.put("reqDate", p_reqDate); //예약시간
break;
case "HSTRY":
System.out.println("전체발송이력");
sms_url = "http://localhost:8088/api/inqry/hstry"; // 전송요청 URL
//추가 전송 데이터
sms.put("page" , p_page); //페이지번호
sms.put("pageSize" , p_pageSize); //페이지당 출력갯수
sms.put("startDate" , p_startDate); //시작일자
sms.put("endDate" , p_endDate); //마감일자
break;
case "HSTRYDETAIL":
System.out.println("상세발송이력");
sms_url = "http://localhost:8088/api/accessKey/hstryDetail"; // 전송요청 URL
sms_url = "http://localhost:8088/api/inqry/hstryDetail"; // 전송요청 URL
//추가 전송 데이터
sms.put("msgGroupId" , p_msgGroupId); //문자 전송 정보
sms.put("page" , p_page); //페이지번호
sms.put("pageSize" , p_pageSize); //페이지당 출력갯수
break;
case "MYDATA":
System.out.println("잔액|단가|발송가능건수");
sms_url = "http://localhost:8088/api/accessKey/myData"; // 전송요청 URL
sms_url = "http://localhost:8088/api/inqry/price"; // 전송요청 URL
break;
default:
b_is_send = false;
break;
}
System.out.println(b_is_send);
//REST API 요청
if (b_is_send){
System.out.println("일반메세지발송");
System.out.println(p_msgType);
System.out.println("일반메세지발송");
String image = "";
//image = "/tmp/pic_57f358af08cf7_sms_.jpg"; // MMS 이미지 파일 위치
/******************** 전송정보 ********************/
String result = "";
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setBoundary(boundary);
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
builder.setCharset(Charset.forName(encodingType));
for(Iterator<String> i = sms.keySet().iterator(); i.hasNext();){
String key = i.next();
//전달값이 없는 경우 오류
try{
System.out.println(key);
System.out.println(key);
System.out.println(sms.get(key));
builder.addTextBody(key, sms.get(key)
, ContentType.create("Multipart/related", encodingType));
}catch(Exception ex){
//ex.printStackTrace()
}
}
File imageFile = new File(image);
if(image!=null && image.length()>0 && imageFile.exists()){
builder.addPart("image",
new FileBody(imageFile, ContentType.create("application/octet-stream"),
URLEncoder.encode(imageFile.getName(), encodingType)));
}
HttpEntity entity = builder.build();
HttpClient client = HttpClients.createDefault();
HttpPost post = new HttpPost(sms_url);
post.setEntity(entity);
HttpResponse res = client.execute(post);
if(res != null){
BufferedReader in = new BufferedReader(new InputStreamReader(res.getEntity().getContent(), encodingType));
String buffer = null;
while((buffer = in.readLine())!=null){
result += buffer;
}
in.close();
}
out.print(result);
}else{
out.print("{\"resultCode\":99,\"message\":\"WRONG API METHOD\"}");
}
}catch(Exception e){
out.print(e.getMessage());
}
%>