파파고 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;
}
'[java]' 카테고리의 다른 글
[java] url로 json 값 가져오기. (0) | 2018.12.26 |
---|---|
[java] javax.net.ssl.SSLPeerUnverifiedException: Hostname not verified: (0) | 2018.12.26 |
[java] object 통한 getClass()를 사용하여 데이터 알아내기 (0) | 2018.09.30 |
web.xml이 없는 경우 (0) | 2018.09.30 |
[java] hashmap value 값으로 key 값 찾기 (0) | 2018.09.29 |