<%@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 boundary 		= 	"__BDR__";
		
		//회원아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 mberId와 apiKey 값을 적어서 사용해주세요
		//실제서비스용
		//final String mberId		=	"goodgkdus";							//문자온 로그인 아이디
		//final String apiKey		=	"12e749877379aa7426275414050694b953";	//발급받은 api key
		
		//테스트용
		String mberId		= request.getParameter("p_mberId");			//문자온 로그인 아이디
		String apiKey		= request.getParameter("p_apiKey");			//발급받은 api key
		
	
		/******************** 전송요청 URL ********************/
		//final String apiUrl		=	"https://api.munjaon.co.kr/api/inqry/hstry";
		final String apiUrl		=	"http://localhost:8088/api/inqry/hstry";
        
		/**************** 발송가능건수 예제 ******************/
		System.out.println("전체발송이력");
	
        
		Map<String, String> params = new HashMap<String, String>();
		
		/******************** 인증정보 ********************/
		params.put("mberId", 		mberId); 	//문자온 로그인 아이디		
		params.put("accessKey", 	apiKey); //APIKEY		
		
		/******************** 전송정보 ********************/
		//(선택)
		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");		//조회마감일자-기본값 내일		
		String p_testYn		= request.getParameter("p_testYn");			//테스트데이터여부	'', 'YF', 'YS'
		
		//추가 전송 데이터
		params.put("page"		, p_page);			//페이지번호
		params.put("pageSize"	, p_pageSize);		//페이지당 출력갯수
		params.put("startDate"	, p_startDate);		//시작일자
		params.put("endDate"	, p_endDate);		//마감일자    
		params.put("test_yn"	, p_testYn);			//테스트 여부
		
            
		String result = "";
		
		MultipartEntityBuilder builder = MultipartEntityBuilder.create();
		
		builder.setBoundary(boundary);
		builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
		builder.setCharset(Charset.forName(encodingType));
		
		for(Iterator<String> i = params.keySet().iterator(); i.hasNext();){
			String key = i.next();
			//전달값이 없는 경우 오류
			try{
				builder.addTextBody(key, params.get(key)
						, ContentType.create("Multipart/related", encodingType));					
			}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("{\"resultCode\":99,\"message\":\"WRONG API METHOD\"}");
	}
	
%>