//콘솔창
{"lastBuildDate": "Thu, 23 Apr 2020 11:28:34 +0900","total": 1892068,"start": 1,"display": 10,"items":
[
{"title": "한국노총 "특고·프리 대책 한계...대상·규모 확대하라"","originallink": "https://www.sedaily.com/NewsView/1Z1L4J3E2X","link": "https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=102&oid=011&aid=0003728611","description": "한국노총과 플랫폼프리랜서 노동자협동조합협의회·전국대리기사협회와 함께 23일 청와대 앞에서 ‘플랫폼 특고 프리랜서 노동자에 대한 정부의 <b>코로나</b>19 지원대책 개선 요구’ 기자회견을 개최했다. 김현중 한국노총... ","pubDate": "Thu, 23 Apr 2020 11:27:00 +0900"},
{"title": "블랙핑크, 팝스타 레이디 가와 협업…"서로의 팬"","originallink": "http://starin.edaily.co.kr/news/newspath.asp?newsid=01193926625739072","link": "https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=106&oid=018&aid=0004626177","description": "최근엔 <b>코로나</b>19 극복 기금 마련을 위해 전 세계 유명 뮤지션들이 동참한 온라인 자선 콘서트 ‘원 월드: 투게더 앳 홈’((One World: Together At Home))을 주도해 화제를 모았다. 블랙핑크는 강렬한 음악과 트렌디한... ","pubDate": "Thu, 23 Apr 2020 11:27:00 +0900"},
{"title": "日 NTT도코모, 갤S20 도쿄올림픽 에디션 출시 취소","originallink": "http://news.mk.co.kr/newsRead.php?no=422779&year=2020","link": "https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=105&oid=009&aid=0004562445","description": "이는 국제올림픽위원회(IOC)가 <b>코로나</b>19 확산으로 도쿄올림픽을 1년 연기한 데 따른 것이다. NTT도코모는 지난달 18일부터 갤럭시S20플러스 도쿄올림픽 에디션을 사전예약 받았다. 명확한 출시일은 밝혀지지 않았으나... ","pubDate": "Thu, 23 Apr 2020 11:27:00 +0900"},
{"title": "대한항공·아시아나항공, 유동성 긴급 수혈받는다…‘자구노력’ 전제","originallink": "https://www.vop.co.kr/A00001483837.html","link": "https://www.vop.co.kr/A00001483837.html","description": "<b>코로나</b>19 여파로 하늘길이 막히면서 타격을 입은 항공업계에 대해 정부가 추가 지원책을 마련했다. 유동성을 지원하는 한편, 각종 사용료와 세금을 감면한다.정부는 23일 홍남기 경제부총리 주재로 열린 제5차... ","pubDate": "Thu, 23 Apr 2020 11:27:00 +0900"},
{"title": "캐나다서 "<b>코로나</b>" 외치며 치매걸린 92세 아시아인 내동댕이","originallink": "https://news.chosun.com/site/data/html_dir/2020/04/23/2020042301979.html?utm_source=naver&utm_medium=original&utm_campaign=news","link": "https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=104&oid=023&aid=0003525927","description": "이 남성은 노인을 내동댕이 치면서 “<b>코로나</b> 바이러스”라 외친 것으로 알려졌다. 밴쿠버 경찰 당국은... 목격자 진술에 따르면 피의자는 노인을 향해 “<b>코로나</b> 바이러스”라고 소리쳤다. 밴쿠버 경찰은 이 사건을... ","pubDate": "Thu, 23 Apr 2020 11:27:00 +0900"},
{"title": "켐온, SK바이오사이언스의 <b>코로나</b>19 백신 비임상 시험 진행","originallink": "http://news.mk.co.kr/newsRead.php?no=422782&year=2020","link": "https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=101&oid=009&aid=0004562447","description": "중인 <b>코로나</b>19 백신의 비임상(동물시험) 연구를 위탁받아 본격적인 시험에 착수한다고 23일 밝혔다. SK바이오사이언스는 지난 2월부터 <b>코로나</b> 19백신 개발을 추진해왔고 검증된 기관을 통한 독성시험 단계에 진입했다.... ","pubDate": "Thu, 23 Apr 2020 11:27:00 +0900"},
{"title": "무등산편백자연휴양림 지원받은 긴급자금 전액 기부","originallink": "http://www.metroseoul.co.kr/article/20200423500136","link": "http://www.metroseoul.co.kr/article/20200423500136","description": "긴급경영안전자금은 <b>코로나</b>19 확산과 장기화로 경영난을 겪고 있는 자영업과 영세사업장 등 소상공인을... 진춘호 대표는 "<b>코로나</b>19 확산으로 많은 사람이 힘들지만 서로 돕고 응원해서 위기를 극복했으면 좋겠다"고... ","pubDate": "Thu, 23 Apr 2020 11:27:00 +0900"},
{"title": "휘발윳값 ‘물보다 싸다’ 는데…체감효과 ‘0’ 분통 터지는 소비자","originallink": "http://news.heraldcorp.com/view.php?ud=20200423000382","link": "https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=101&oid=016&aid=0001665661","description": "오정근 건국대 특임교수는 “유류세 인하는 정유사의 부담을 덜고 국민도 저렴한 가격에 소비할 수 있는 양수겸장의 카드”라며 “마침 현 시점이 <b>코로나</b>19의 기세가 주춤하며 사람들의 활동이 늘어나는 시기인 만큼... ","pubDate": "Thu, 23 Apr 2020 11:27:00 +0900"},
{"title": "자가격리자에게 감동을 준 공무원 이야기","originallink": "http://www.metroseoul.co.kr/article/20200423500128","link": "http://www.metroseoul.co.kr/article/20200423500128","description": "최근들어 '<b>코로나</b>19' 확진자는 많이 감소했다. 강도높은 사회적 거리두기 캠페인으로 지역사회 감염은 크게... '<b>코로나</b>19'로 온 국민이 지쳐가는 상황에서 감염의 두려움을 접어두고 환자를 치료하는 의료진과 하루라도... ","pubDate": "Thu, 23 Apr 2020 11:27:00 +0900"},
{"title": "젠하이저, 노이즈캔슬링 헤드폰 및 무선 마이크 할인","originallink": "https://www.sisa-news.com/news/article.html?no=124733","link": "https://www.sisa-news.com/news/article.html?no=124733","description": "젠하이저의 관계자는 “<b>코로나</b>19의 여파가 현대인들의 일상에 많은 영향을 끼치고 있는 가운데 젠하이저가 재택근무를 하는 직장인, 인터넷 강의를 수강하는 학생들의 업무 효율도와 집중력을 높여 줄 노이즈캔슬링... ","pubDate": "Thu, 23 Apr 2020 11:27:00 +0900"}
]
}
타이틀과 날짜만 나오도록
//네이버 검색API 추가////////////////////////////////////////////
public static void searchNews(String keyword) throws Exception{
String clientId = "fGYnIqMXhxG3tTIy4YY2"; //애플리케이션 클라이언트 아이디값"
String clientSecret = "Rr3Hzk7W2D"; //애플리케이션 클라이언트 시크릿값"
String text = null;
try {
text = URLEncoder.encode(keyword, "UTF-8");
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("검색어 인코딩 실패",e);
}
String apiURL = "https://openapi.naver.com/v1/search/news?query=" + text; // json 결과
//String apiURL = "https://openapi.naver.com/v1/search/blog.xml?query="+ text; // xml 결과
Map<String, String> requestHeaders = new HashMap<>();
requestHeaders.put("X-Naver-Client-Id", clientId);
requestHeaders.put("X-Naver-Client-Secret", clientSecret);
String responseBody = get(apiURL,requestHeaders);
//타이틀과 날짜만 나오도록
JsonElement root = JsonParser.parseString(responseBody);
JsonObject rootObj = root.getAsJsonObject();
JsonArray itemsArrayObj = rootObj.getAsJsonArray("items");
// System.out.println(itemsObj); // []배열
// System.out.println(itemsObj.size()); // 배열사이즈
String[] title = new String[itemsArrayObj.size()]; // 배열로 따로 저장한하고 바로 출력해도 ok
String[] pubDate = new String[itemsArrayObj.size()];
for(int i =0 ; i< itemsArrayObj.size(); i++ )
{
JsonObject newsObj = itemsArrayObj.get(i).getAsJsonObject(); // []안의 JsonObject 순서대로 꺼내기
title[i] = newsObj.get("title").getAsString(); //꺼낸 JsonObject에서 키값 title인 value 꺼내기
pubDate[i] = newsObj.get("pubDate").getAsString(); //toString은 따옴표포함해서 나옴
System.out.println("===========================================");
System.out.println("제목 : "+title[i]);
System.out.println("날짜 : "+pubDate[i]);
System.out.println("===========================================");
}
}
private static String get(String apiUrl, Map<String, String> requestHeaders) throws Exception{
HttpURLConnection con = connect(apiUrl);
try {
con.setRequestMethod("GET");
for(Map.Entry<String, String> header :requestHeaders.entrySet()) {
con.setRequestProperty(header.getKey(), header.getValue());
}
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) { // 정상 호출
return readBody(con.getInputStream());
} else { // 에러 발생
return readBody(con.getErrorStream());
}
} catch (IOException e) {
throw new RuntimeException("API 요청과 응답 실패", e);
} finally {
con.disconnect();
}
}
import java.util.Scanner;
//PAPAGO
public class Exam_01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("영어로 번역할 한글 입력 : ");
String msg = sc.nextLine();
NaverAPI.translateKorToEng(msg);
}
}
콘솔창
영어로 번역할 한글 입력 : 점심시간 2시간 30분 남았다.
{"message":{"@type":"response","@service":"naverservice.nmt.proxy","@version":"1.0.0","result":{"srcLangType":"ko","tarLangType":"en","translatedText":"Two and a half hours left for lunch.","engineType":"N2MT","pivot":null}}}
{"message":
{"@type":"response","@service":"naverservice.nmt.proxy","@version":"1.0.0","result":
{"srcLangType":"ko","tarLangType":"en","translatedText":"Two and a half hours left for lunch.","engineType":"N2MT","pivot":null}}}
{"@type":"response","@service":"naverservice.nmt.proxy","@version":"1.0.0","result":
{"srcLangType":"ko","tarLangType":"en","translatedText":"Two and a half hours left for lunch.","engineType":"N2MT","pivot":null}}
//콘솔창
영어로 번역할 한글 입력 : 안녕
{"@type":"response","@service":"naverservice.nmt.proxy","@version":"1.0.0","result":{"srcLangType":"ko","tarLangType":"en","translatedText":"Hi.","engineType":"N2MT","pivot":null}}
{"srcLangType":"ko","tarLangType":"en","translatedText":"Hi.","engineType":"N2MT","pivot":null}
Hi.