5585 api 오류 수정
This commit is contained in:
parent
8b8da221b3
commit
d6df56b7b7
@ -15,95 +15,87 @@
|
||||
<%@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 boundary = "____boundary____";
|
||||
|
||||
//비즈 아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 bizId와 apiKey 값을 적어서 사용
|
||||
//실제서비스용
|
||||
final String accessKey = "3429312e6a2c732188d4cc7d15d8a1baa01d8d91"; //발급받은 api key
|
||||
|
||||
//테스트용
|
||||
//String bizId = request.getParameter("p_bizId"); //비즈 아이디
|
||||
//String apiKey = request.getParameter("p_apiKey"); //발급받은 api key
|
||||
try{
|
||||
//기본 설정값
|
||||
final String encodingType = "UTF-8";
|
||||
final String boundary = "____boundary____";
|
||||
|
||||
/******************** 전송 요청 URL ********************/
|
||||
|
||||
//비즈 아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 bizId와 apiKey 값을 적어서 사용
|
||||
//실제서비스용
|
||||
final String accessKey = "3429312e6a2c732188d4cc7d15d8a1baa01d8d91"; //발급받은 api key
|
||||
//테스트용
|
||||
//String mberId = request.getParameter("p_mberId"); //문자온 로그인 아이디
|
||||
//String apiKey = request.getParameter("p_apiKey"); //발급받은 api key
|
||||
|
||||
/******************** 전송 요청 URL ********************/
|
||||
final String apiUrl = "http://119.193.215.98:8087/api/kakao/inqry/templates/detail"; //템플릿 상세 조회 API URL
|
||||
// final String apiUrl = "http://localhost:8088/api/kakao/inqry/templates/detail"; //템플릿 상세 조회 API URL
|
||||
|
||||
/******************** 전송 정보 ********************/
|
||||
//필수 값
|
||||
String p_senderKey = request.getParameter("p_senderKey"); //발신프로필키
|
||||
String p_templateCode = request.getParameter("p_templateCode"); //템플릿코드
|
||||
String p_mberId = request.getParameter("p_mberId"); //발신프로필키
|
||||
|
||||
Map<String, String> params = new HashMap<String, String>();
|
||||
|
||||
|
||||
System.out.println("accessKey : "+ accessKey); //비즈 아이디
|
||||
System.out.println("mberId : "+ p_mberId); //비즈 아이디
|
||||
System.out.println("senderKey : "+ p_senderKey); //발신프로필키
|
||||
System.out.println("templateCode : "+ p_templateCode); //템플릿코드
|
||||
|
||||
|
||||
//기본 전송 데이터
|
||||
params.put("accessKey", accessKey); //비즈 아이디
|
||||
params.put("mberId", p_mberId); //비즈 아이디
|
||||
params.put("senderKey", p_senderKey); //발신프로필키
|
||||
params.put("templateCode", p_templateCode); //템플릿코드
|
||||
|
||||
//REST API 전송
|
||||
String result = "";
|
||||
|
||||
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
|
||||
|
||||
builder.setBoundary(boundary);
|
||||
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
|
||||
builder.setCharset(Charset.forName(encodingType));
|
||||
|
||||
try{
|
||||
for(Iterator<String> i = params.keySet().iterator(); i.hasNext();){
|
||||
String key = i.next();
|
||||
//전달값이 없는 경우 오류
|
||||
try{
|
||||
String value = params.get(key);
|
||||
if(value != null) {
|
||||
builder.addTextBody(key, value, ContentType.create("Multipart/related", encodingType));
|
||||
}
|
||||
}catch(Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}catch(Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
HttpEntity entity = builder.build();
|
||||
|
||||
HttpClient client = HttpClients.createDefault();
|
||||
HttpPost post = new HttpPost(apiUrl);
|
||||
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);
|
||||
|
||||
}catch(Exception e){
|
||||
out.print("{\"data\":{\"resultCode\":99,\"msg\":\"WRONG API METHOD\"}}");
|
||||
e.printStackTrace();
|
||||
}
|
||||
//회원아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 mberId와 apiKey 값을 적어서 사용
|
||||
String p_senderKey = request.getParameter("p_senderKey"); //발신프로필키
|
||||
String p_templateCode = request.getParameter("p_templateCode"); //템플릿코드
|
||||
String p_mberId = request.getParameter("p_mberId"); //발신프로필키
|
||||
|
||||
/**************** 템플릿 상세 조회 Response 예제 ******************/
|
||||
/* "resultCode": 결과코드, "objectList": 템플릿 상세 정보 */
|
||||
/* "msg": 결과 메시지, "templateCode": 템플릿코드, "templateName": 템플릿명 */
|
||||
/* "template": 템플릿 내용, "buttons": 버튼 정보, "quickReplies": 퀵 리플라이 */
|
||||
Map<String, String> params = new HashMap<String, String>();
|
||||
|
||||
//기본 전송 데이터
|
||||
params.put("accessKey", accessKey); //비즈 아이디
|
||||
params.put("mberId", p_mberId); //비즈 아이디
|
||||
params.put("senderKey", p_senderKey); //발신프로필키
|
||||
params.put("templateCode", p_templateCode); //템플릿코드
|
||||
|
||||
//REST API 전송
|
||||
String result = "";
|
||||
|
||||
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
|
||||
|
||||
builder.setBoundary(boundary);
|
||||
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
|
||||
builder.setCharset(Charset.forName(encodingType));
|
||||
|
||||
try{
|
||||
for(Iterator<String> i = params.keySet().iterator(); i.hasNext();){
|
||||
String key = i.next();
|
||||
//전달값이 없는 경우 오류
|
||||
try{
|
||||
String value = params.get(key);
|
||||
if(value != null) {
|
||||
builder.addTextBody(key, value, ContentType.create("Multipart/related", encodingType));
|
||||
}
|
||||
}catch(Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}catch(Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
HttpEntity entity = builder.build();
|
||||
|
||||
HttpClient client = HttpClients.createDefault();
|
||||
HttpPost post = new HttpPost(apiUrl);
|
||||
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);
|
||||
|
||||
}catch(Exception e){
|
||||
out.print("{\"data\":{\"resultCode\":99,\"msg\":\"WRONG API METHOD\"}}");
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
/**************** 채널ID 조회 Response 예제 ******************/
|
||||
/* "resultCode": 결과코드, "objectList": 채널 목록 */
|
||||
/* "msg": 결과 메시지, "profileId": 프로필ID, "senderKey": 발신프로필키 */
|
||||
/* "phoneNumber": 핸드폰번호, "yellowId": 채널ID, "categoryName": 카테고리명 */
|
||||
%>
|
||||
@ -15,88 +15,86 @@
|
||||
<%@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 boundary = "____boundary____";
|
||||
|
||||
//비즈 아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 bizId와 apiKey 값을 적어서 사용
|
||||
//실제서비스용
|
||||
final String accessKey = "3429312e6a2c732188d4cc7d15d8a1baa01d8d91"; //발급받은 api key
|
||||
|
||||
//테스트용
|
||||
//String bizId = request.getParameter("p_bizId"); //비즈 아이디
|
||||
//String apiKey = request.getParameter("p_apiKey"); //발급받은 api key
|
||||
try{
|
||||
//기본 설정값
|
||||
final String encodingType = "UTF-8";
|
||||
final String boundary = "____boundary____";
|
||||
|
||||
/******************** 전송 요청 URL ********************/
|
||||
|
||||
//비즈 아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 bizId와 apiKey 값을 적어서 사용
|
||||
//실제서비스용
|
||||
final String accessKey = "3429312e6a2c732188d4cc7d15d8a1baa01d8d91"; //발급받은 api key
|
||||
//테스트용
|
||||
//String mberId = request.getParameter("p_mberId"); //문자온 로그인 아이디
|
||||
//String apiKey = request.getParameter("p_apiKey"); //발급받은 api key
|
||||
|
||||
/******************** 전송 요청 URL ********************/
|
||||
final String apiUrl = "http://119.193.215.98:8087/api/kakao/inqry/templates/list"; //템플릿 목록 조회 API URL
|
||||
// final String apiUrl = "http://localhost:8088/api/kakao/inqry/templates/list"; //템플릿 목록 조회 API URL
|
||||
|
||||
/******************** 전송 정보 ********************/
|
||||
//필수 값
|
||||
String p_senderKey = request.getParameter("p_senderKey"); //발신프로필키
|
||||
String p_mberId = request.getParameter("p_mberId"); //발신프로필키
|
||||
|
||||
Map<String, String> params = new HashMap<String, String>();
|
||||
|
||||
System.out.println("accessKey : "+ accessKey);
|
||||
|
||||
//기본 전송 데이터
|
||||
params.put("mberId", p_mberId); //비즈 아이디
|
||||
params.put("accessKey", accessKey); //인증키
|
||||
params.put("senderKey", p_senderKey); //발신프로필키
|
||||
|
||||
//REST API 전송
|
||||
String result = "";
|
||||
|
||||
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
|
||||
|
||||
builder.setBoundary(boundary);
|
||||
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
|
||||
builder.setCharset(Charset.forName(encodingType));
|
||||
|
||||
try{
|
||||
for(Iterator<String> i = params.keySet().iterator(); i.hasNext();){
|
||||
String key = i.next();
|
||||
//전달값이 없는 경우 오류
|
||||
try{
|
||||
String value = params.get(key);
|
||||
if(value != null) {
|
||||
builder.addTextBody(key, value, ContentType.create("Multipart/related", encodingType));
|
||||
}
|
||||
}catch(Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}catch(Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
HttpEntity entity = builder.build();
|
||||
|
||||
HttpClient client = HttpClients.createDefault();
|
||||
HttpPost post = new HttpPost(apiUrl);
|
||||
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);
|
||||
|
||||
}catch(Exception e){
|
||||
out.print("{\"data\":{\"resultCode\":99,\"msg\":\"WRONG API METHOD\"}}");
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
/**************** 템플릿 목록 조회 Response 예제 ******************/
|
||||
/* "resultCode": 결과코드, "objectList": 템플릿 목록 */
|
||||
/* "msg": 결과 메시지, "templateCode": 템플릿코드, "templateName": 템플릿명 */
|
||||
/* "templateMessageType": 메시지타입, "status": 상태, "inspectionStatus": 검수상태 */
|
||||
//회원아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 mberId와 apiKey 값을 적어서 사용
|
||||
String p_senderKey = request.getParameter("p_senderKey"); //발신자 번호
|
||||
String p_mberId = request.getParameter("p_mberId"); //수신자 번호
|
||||
|
||||
Map<String, String> params = new HashMap<String, String>();
|
||||
|
||||
//기본 전송 데이터
|
||||
params.put("mberId", p_mberId); //비즈 아이디
|
||||
params.put("accessKey", accessKey); //인증키
|
||||
params.put("senderKey", p_senderKey); //발신프로필키
|
||||
|
||||
//REST API 전송
|
||||
String result = "";
|
||||
|
||||
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
|
||||
|
||||
builder.setBoundary(boundary);
|
||||
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
|
||||
builder.setCharset(Charset.forName(encodingType));
|
||||
|
||||
try{
|
||||
for(Iterator<String> i = params.keySet().iterator(); i.hasNext();){
|
||||
String key = i.next();
|
||||
//전달값이 없는 경우 오류
|
||||
try{
|
||||
String value = params.get(key);
|
||||
if(value != null) {
|
||||
builder.addTextBody(key, value, ContentType.create("Multipart/related", encodingType));
|
||||
}
|
||||
}catch(Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}catch(Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
HttpEntity entity = builder.build();
|
||||
|
||||
HttpClient client = HttpClients.createDefault();
|
||||
HttpPost post = new HttpPost(apiUrl);
|
||||
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);
|
||||
|
||||
}catch(Exception e){
|
||||
out.print("{\"data\":{\"resultCode\":99,\"msg\":\"WRONG API METHOD\"}}");
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
/**************** 채널ID 조회 Response 예제 ******************/
|
||||
/* "resultCode": 결과코드, "objectList": 채널 목록 */
|
||||
/* "msg": 결과 메시지, "profileId": 프로필ID, "senderKey": 발신프로필키 */
|
||||
/* "phoneNumber": 핸드폰번호, "yellowId": 채널ID, "categoryName": 카테고리명 */
|
||||
%>
|
||||
@ -1,116 +1,160 @@
|
||||
<%@page import="java.io.InputStreamReader"%>
|
||||
<%@page import="java.io.BufferedReader"%>
|
||||
<%@page import="org.apache.http.client.entity.UrlEncodedFormEntity"%>
|
||||
<%@page import="org.apache.http.client.methods.CloseableHttpResponse"%>
|
||||
<%@page import="org.apache.http.HttpResponse"%>
|
||||
<%@page import="org.apache.http.client.methods.HttpPost"%>
|
||||
<%@page import="org.apache.http.impl.client.CloseableHttpClient"%>
|
||||
<%@page import="org.apache.http.impl.client.HttpClients"%>
|
||||
<%@page import="org.apache.http.message.BasicNameValuePair"%>
|
||||
<%@page import="org.apache.http.NameValuePair"%>
|
||||
<%@page import="java.nio.charset.StandardCharsets"%>
|
||||
<%@page import="java.util.*"%>
|
||||
<%@ page language="java" contentType="application/json; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||
<%@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="java.nio.charset.Charset"%>
|
||||
<%@page import="org.apache.http.entity.mime.HttpMultipartMode"%>
|
||||
<%@page import="org.apache.http.entity.mime.MultipartEntityBuilder"%>
|
||||
<%@ page import="org.apache.http.message.BasicNameValuePair" %>
|
||||
<%@page import="org.apache.http.entity.StringEntity"%>
|
||||
<%@page import="org.apache.http.entity.ContentType"%>
|
||||
<%@page import="java.net.URLEncoder"%>
|
||||
<%@ page import="java.util.*" %>
|
||||
<%@ page import="org.apache.http.impl.client.CloseableHttpClient" %>
|
||||
<%@ page import="java.nio.charset.StandardCharsets" %>
|
||||
<%@ page import="org.apache.http.client.entity.UrlEncodedFormEntity" %>
|
||||
<%@ page import="org.apache.http.client.methods.CloseableHttpResponse" %>
|
||||
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
|
||||
<%
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
|
||||
try {
|
||||
// ===== 고정값(실서비스는 서버 보관) =====
|
||||
|
||||
// ===== 전송 URL =====
|
||||
// final String apiUrl = "http://119.193.215.98:8087/api/kakao/at/sendMsg";
|
||||
final String apiUrl = "http://119.193.215.98:8087/api/kakao/at/sendMsg";
|
||||
// final String apiUrl = "http://localhost:8088/api/kakao/at/sendMsg";
|
||||
try{
|
||||
//기본 설정값
|
||||
final String encodingType = "UTF-8";
|
||||
final String boundary = "____boundary____";
|
||||
|
||||
|
||||
String p_mberId = request.getParameter("mberId"); //사용자 ID
|
||||
String p_apiKey = request.getParameter("accessKey"); //API KEY
|
||||
|
||||
System.out.println("p_mberId : "+ p_mberId);
|
||||
System.out.println("p_apiKey : "+ p_apiKey);
|
||||
|
||||
// ===== 공통 파라미터 수신 (p_* / 비접두어 둘 다 허용) =====
|
||||
String senderKey = request.getParameter("p_senderKey"); if (senderKey == null) senderKey = request.getParameter("senderKey");
|
||||
String templateCode = request.getParameter("p_templateCode"); if (templateCode == null) templateCode = request.getParameter("templateCode");
|
||||
String callFrom = request.getParameter("p_callFrom"); if (callFrom == null) callFrom = request.getParameter("callFrom");
|
||||
String subMsgSendYn = request.getParameter("p_subMsgSendYn"); if (subMsgSendYn == null) subMsgSendYn = request.getParameter("subMsgSendYn");
|
||||
String testYn = request.getParameter("p_testYn"); if (testYn == null) testYn = request.getParameter("testYn");
|
||||
//테스트용
|
||||
//String mberId = request.getParameter("p_mberId"); //문자온 로그인 아이디
|
||||
//String apiKey = request.getParameter("p_apiKey"); //발급받은 api key
|
||||
|
||||
System.out.println("senderKey : "+ senderKey);
|
||||
/******************** 전송 요청 URL ********************/
|
||||
final String apiUrl = "http://119.193.215.98:8087/api/kakao/at/sendMsg";
|
||||
|
||||
if (callFrom != null) callFrom = callFrom.replaceAll("\\D", ""); // 숫자만
|
||||
|
||||
// ===== form 구성 (x-www-form-urlencoded) =====
|
||||
List<NameValuePair> form = new ArrayList<>();
|
||||
form.add(new BasicNameValuePair("mberId", p_mberId));
|
||||
form.add(new BasicNameValuePair("accessKey", p_apiKey));
|
||||
form.add(new BasicNameValuePair("senderKey", senderKey != null ? senderKey : ""));
|
||||
form.add(new BasicNameValuePair("templateCode", templateCode != null ? templateCode : ""));
|
||||
form.add(new BasicNameValuePair("callFrom", callFrom != null ? callFrom : ""));
|
||||
form.add(new BasicNameValuePair("subMsgSendYn", subMsgSendYn != null ? subMsgSendYn : ""));
|
||||
if (testYn != null && !testYn.isEmpty()) {
|
||||
form.add(new BasicNameValuePair("testYn", testYn)); // snake_case 아님
|
||||
}
|
||||
//회원아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 mberId와 apiKey 값을 적어서 사용
|
||||
String p_mberId = request.getParameter("mberId"); //사용자 ID
|
||||
String p_apiKey = request.getParameter("accessKey"); //API KEY
|
||||
|
||||
// ===== 수신자 인덱스 수집 (callTo_* / p_callTo_* 모두 지원) =====
|
||||
Set<Integer> idxSet = new TreeSet<Integer>(); // 자동 오름차순
|
||||
for (Enumeration<String> e = request.getParameterNames(); e.hasMoreElements();) {
|
||||
String nm = e.nextElement();
|
||||
if (nm.startsWith("callTo_")) {
|
||||
try { idxSet.add(Integer.parseInt(nm.substring("callTo_".length()))); } catch(Exception ignore){}
|
||||
} else if (nm.startsWith("p_callTo_")) {
|
||||
try { idxSet.add(Integer.parseInt(nm.substring("p_callTo_".length()))); } catch(Exception ignore){}
|
||||
Map<String, String> params = new HashMap<String, String>();
|
||||
|
||||
//기본 전송 데이터
|
||||
params.put("mberId", p_mberId); //회원 아이디
|
||||
params.put("accessKey", p_apiKey); //인증키
|
||||
|
||||
|
||||
// ===== 공통 파라미터 수신 (p_* / 비접두어 둘 다 허용) =====
|
||||
String senderKey = request.getParameter("p_senderKey"); if (senderKey == null) senderKey = request.getParameter("senderKey");
|
||||
String templateCode = request.getParameter("p_templateCode"); if (templateCode == null) templateCode = request.getParameter("templateCode");
|
||||
String callFrom = request.getParameter("p_callFrom"); if (callFrom == null) callFrom = request.getParameter("callFrom");
|
||||
String subMsgSendYn = request.getParameter("p_subMsgSendYn"); if (subMsgSendYn == null) subMsgSendYn = request.getParameter("subMsgSendYn");
|
||||
String testYn = request.getParameter("p_testYn"); if (testYn == null) testYn = request.getParameter("testYn");
|
||||
|
||||
|
||||
if (callFrom != null) callFrom = callFrom.replaceAll("\\D", ""); // 숫자만
|
||||
|
||||
Map<String, String> form = new LinkedHashMap<String, String>();
|
||||
|
||||
form.put("mberId", p_mberId);
|
||||
form.put("accessKey", p_apiKey);
|
||||
form.put("senderKey", senderKey != null ? senderKey : "");
|
||||
form.put("templateCode", templateCode != null ? templateCode : "");
|
||||
form.put("callFrom", callFrom != null ? callFrom : "");
|
||||
form.put("subMsgSendYn", subMsgSendYn != null ? subMsgSendYn : "");
|
||||
|
||||
if (testYn != null && !testYn.isEmpty()) {
|
||||
form.put("testYn", testYn);
|
||||
}
|
||||
}
|
||||
|
||||
// ===== 인덱스별로 Postman 스타일 키 생성해 그대로 추가 =====
|
||||
for (Integer idx : idxSet) {
|
||||
String callTo = request.getParameter("callTo_" + idx);
|
||||
if (callTo == null) callTo = request.getParameter("p_callTo_" + idx);
|
||||
if (callTo == null || callTo.trim().isEmpty()) continue;
|
||||
callTo = callTo.replaceAll("\\D", "");
|
||||
// ===== 수신자 인덱스 수집 (callTo_* / p_callTo_* 모두 지원) =====
|
||||
Set<Integer> idxSet = new TreeSet<Integer>(); // 자동 오름차순
|
||||
for (Enumeration<String> e = request.getParameterNames(); e.hasMoreElements();) {
|
||||
String nm = e.nextElement();
|
||||
if (nm.startsWith("callTo_")) {
|
||||
try { idxSet.add(Integer.parseInt(nm.substring("callTo_".length()))); } catch(Exception ignore){}
|
||||
} else if (nm.startsWith("p_callTo_")) {
|
||||
try { idxSet.add(Integer.parseInt(nm.substring("p_callTo_".length()))); } catch(Exception ignore){}
|
||||
}
|
||||
}
|
||||
|
||||
String title = request.getParameter("templateTitle_" + idx);
|
||||
if (title == null) title = request.getParameter("p_title_" + idx);
|
||||
// ===== 인덱스별로 Postman 스타일 키 생성해 그대로 추가 =====
|
||||
for (Integer idx : idxSet) {
|
||||
String callTo = request.getParameter("callTo_" + idx);
|
||||
if (callTo == null) callTo = request.getParameter("p_callTo_" + idx);
|
||||
if (callTo == null || callTo.trim().isEmpty()) continue;
|
||||
callTo = callTo.replaceAll("\\D", "");
|
||||
|
||||
String content = request.getParameter("templateContent_" + idx);
|
||||
if (content == null) content = request.getParameter("p_msgTxt_" + idx);
|
||||
String title = request.getParameter("templateTitle_" + idx);
|
||||
if (title == null) title = request.getParameter("p_title_" + idx);
|
||||
|
||||
String subTxt = request.getParameter("subMsgTxt_" + idx);
|
||||
if (subTxt == null) subTxt = request.getParameter("p_subMsgTxt_" + idx);
|
||||
String content = request.getParameter("templateContent_" + idx);
|
||||
if (content == null) content = request.getParameter("p_msgTxt_" + idx);
|
||||
|
||||
form.add(new BasicNameValuePair("callTo_" + idx, callTo));
|
||||
if (title != null && !title.isEmpty()) form.add(new BasicNameValuePair("templateTitle_" + idx, title));
|
||||
if (content != null && !content.isEmpty()) form.add(new BasicNameValuePair("templateContent_" + idx, content));
|
||||
if (subTxt != null && !subTxt.isEmpty()) form.add(new BasicNameValuePair("subMsgTxt_" + idx, subTxt));
|
||||
}
|
||||
String subTxt = request.getParameter("subMsgTxt_" + idx);
|
||||
if (subTxt == null) subTxt = request.getParameter("p_subMsgTxt_" + idx);
|
||||
form.put("callTo_" + idx, callTo);
|
||||
if (title != null && !title.isEmpty()) form.put("templateTitle_" + idx, title);
|
||||
if (content != null && !content.isEmpty()) form.put("templateContent_" + idx, content);
|
||||
if (subTxt != null && !subTxt.isEmpty()) form.put("subMsgTxt_" + idx, subTxt);
|
||||
|
||||
// (선택) 서버 로그로 확인
|
||||
System.out.println("form :: " + form);
|
||||
}
|
||||
|
||||
// ===== 전송 =====
|
||||
String result = "";
|
||||
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||
HttpPost post = new HttpPost(apiUrl);
|
||||
post.setHeader("Accept", "application/json");
|
||||
post.setEntity(new UrlEncodedFormEntity(form, StandardCharsets.UTF_8));
|
||||
try (CloseableHttpResponse res = client.execute(post)) {
|
||||
if (res != null && res.getEntity() != null) {
|
||||
try (BufferedReader in = new BufferedReader(
|
||||
new InputStreamReader(res.getEntity().getContent(), StandardCharsets.UTF_8))) {
|
||||
String line;
|
||||
while ((line = in.readLine()) != null) result += line;
|
||||
|
||||
|
||||
// ===== 전송 =====
|
||||
String result = "";
|
||||
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||
|
||||
HttpPost post = new HttpPost(apiUrl);
|
||||
post.setHeader("Accept", "application/json");
|
||||
|
||||
// form(Map)을 x-www-form-urlencoded 문자열로 변환
|
||||
StringBuilder body = new StringBuilder();
|
||||
for (Map.Entry<String, String> entry : form.entrySet()) {
|
||||
if (body.length() > 0) {
|
||||
body.append('&');
|
||||
}
|
||||
body.append(URLEncoder.encode(entry.getKey(), "UTF-8"))
|
||||
.append('=')
|
||||
.append(URLEncoder.encode(entry.getValue() != null ? entry.getValue() : "", "UTF-8"));
|
||||
}
|
||||
|
||||
// StringEntity로 설정
|
||||
StringEntity entity = new StringEntity(
|
||||
body.toString(),
|
||||
ContentType.APPLICATION_FORM_URLENCODED.withCharset(StandardCharsets.UTF_8)
|
||||
);
|
||||
post.setEntity(entity);
|
||||
|
||||
|
||||
|
||||
|
||||
try (CloseableHttpResponse res = client.execute(post)) {
|
||||
if (res != null && res.getEntity() != null) {
|
||||
try (BufferedReader in = new BufferedReader(
|
||||
new InputStreamReader(res.getEntity().getContent(), StandardCharsets.UTF_8))) {
|
||||
String line;
|
||||
while ((line = in.readLine()) != null) result += line;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
out.print((result == null || result.isEmpty())
|
||||
? "{\"data\":{\"resultCode\":99,\"msg\":\"EMPTY RESPONSE\"}}"
|
||||
: result);
|
||||
|
||||
|
||||
}catch(Exception e){
|
||||
out.print("{\"data\":{\"resultCode\":99,\"msg\":\"WRONG API METHOD\"}}");
|
||||
e.printStackTrace();
|
||||
}
|
||||
System.out.println(" ++ result :: "+ result);
|
||||
|
||||
out.print((result == null || result.isEmpty())
|
||||
? "{\"data\":{\"resultCode\":99,\"msg\":\"EMPTY RESPONSE\"}}"
|
||||
: result);
|
||||
|
||||
} catch (Exception e) {
|
||||
out.print("{\"data\":{\"resultCode\":99,\"msg\":\"WRONG API METHOD\"}}");
|
||||
e.printStackTrace();
|
||||
}
|
||||
%>
|
||||
/**************** 채널ID 조회 Response 예제 ******************/
|
||||
/* "resultCode": 결과코드, "objectList": 채널 목록 */
|
||||
/* "msg": 결과 메시지, "profileId": 프로필ID, "senderKey": 발신프로필키 */
|
||||
/* "phoneNumber": 핸드폰번호, "yellowId": 채널ID, "categoryName": 카테고리명 */
|
||||
%>
|
||||
Loading…
Reference in New Issue
Block a user