'파파고 서블렛'에 해당되는 글 1건

파파고 NMT 테스트 / JSP로 해보기 (Servlet 사용)



nmt 파파고 api를 jsp로 테스트 해보겠습니다.


사용방법은 ajax - servlet를 사용합니다.


간단한 테스트를 진행합니다.




1. 파파고 nmt를 사용하기 위해서


open API 이용 신청을 하여야 합니다.


 https://developers.naver.com/products/nmt/ 



Client_ID와 Client_Secret의 값이 필요합니다.




2. client id 와 secret 이 생성된 후에 jsp 페이지를 생성합니다.



textarea 2개,

실행할 button 1개를 만듭니다.


그리고, jquery를 추가해줍니다.


<p>NMT를 테스를 합니다.</p>

<textarea id="send_text" class="form-control" name="content" cols="40" rows="4" placeholder="보낼값"></textarea>
<button id="jsonConvertStringSend" type="button"> 번역하기 </button>
<textarea id="result_text" class="form-control" name="content" cols="40" rows="4" placeholder="결과값" readonly></textarea>


<script>
//번역을 위해서 button 이벤트를 위해서 사용하는 것
$('#jsonConvertStringSend').click(function () {
//번역할 object를 생성
var test = {
"original_str": $("#send_text").val()
};
jsonSend(test);
});
function jsonSend(test) {
$.ajax({
type: "POST",
url: "/TistoryExample/NMTTestServlet",
data: test, //json을 보내는 방법
success: function (data) { //서블렛을 통한 결과 값을 받을 수 있습니다.
console.log(data);
//alert(data);

//string의 값을 object 형식으로 변환합니다.
var resulut_obj = JSON.parse(data);
//결과값을 textarea에 넣기 위해서
$("#result_text").val(resulut_obj.message.result.translatedText);
},
error: function (e) {
console.log(e);
alert('실패했습니다.');
}
});
}
</script>




3. servlet를 만들어줍니다.


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("NMTTestServlet doPost 메소드가 실행되었습니다.");
    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=utf-8");

    //번역할 text 값을 받아 옵니다
    String original_str = (String)request.getParameter("original_str");

    //결과값 보내기 위한것
    PrintWriter out = response.getWriter();
    out.print((String)nmtReturnRseult(original_str));
    
}

// nmtReturnResult의 함수를 통해서 한글 - > 영어로 번역
public String nmtReturnRseult(String original_str){
    
    //애플리케이션 클라이언트 아이디값";
    String clientId = "jPPntjzUc09zBQsT_zU7";
    //애플리케이션 클라이언트 시크릿값";
    String clientSecret = "iSGGw0F3NI";
    
    String resultString ="";
    try {
        //original_str 값이 우리가 변환할 값
        String text = URLEncoder.encode(original_str, "UTF-8");
        
        String apiURL = "https://openapi.naver.com/v1/papago/n2mt";
        URL url = new URL(apiURL);
        HttpURLConnection con = (HttpURLConnection)url.openConnection();
        con.setRequestMethod("POST");
        con.setRequestProperty("X-Naver-Client-Id", clientId);
        con.setRequestProperty("X-Naver-Client-Secret", clientSecret);
        // post request
        String postParams = "source=ko&target=en&text=" + text;
        con.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        wr.writeBytes(postParams);
        wr.flush();
        wr.close();
        int responseCode = con.getResponseCode();
        BufferedReader br;
        if(responseCode==200) { // 정상 호출
            br = new BufferedReader(new InputStreamReader(con.getInputStream()));
        } else { // 에러 발생
            br = new BufferedReader(new InputStreamReader(con.getErrorStream()));
        }
        String inputLine;
        StringBuffer response = new StringBuffer();
        while ((inputLine = br.readLine()) != null) {
            response.append(inputLine);
        }
        br.close();
        System.out.println(response.toString());
        
        resultString = response.toString();
    } catch (Exception e) {
        System.out.println(e);
    }
    
    return resultString;
}




블로그 이미지

미나미나미

,