File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
<%@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());
}
%>