지난번에 JSON 데이터를 만들어봤는데요.
이번에는
URL를 통해 JSON 데이타를 전송하고
서버로부터 정상유무 데이터를 응답 받기를 해보려고 합니다.
주로 사용하는 간단한 방법으로 구현했습니다.
JSON 데이타는 지난번에 만들 소스를 편집해서 활용합니다. ^^;;
Java에 내장된 HttpURLConnection을 이용해서 POST 방식으로 전송합니다.
프로그램 완성후에 테스트를 위해서
JSON 데이타를 받아주는 Web서버가 있어야 되겠죠. ^^;;
Springboot를 이용해 Web Server 만들면 될 거예요.
하지만
Web서버의 기능 테스트가 아니라
내가 만든 JSON 데이터가 정상적으로 서버로 전송되는지
서버에서 받은 JSON데이타가 정확히 표시되는지 확인만 필요할 경우에는
굳이 시간 내서 웹서버를 만들 필요 없이
webhook.site 를 이용해서 바로 확인을 할 수가 있습니다.
webhook.site에 대해 간단하게 알아볼게요.
만든 프로그램 기능만 잠깐 확인하고 푼데
웹서버까지 만들어야 되는 고생은 하기 싫을 때가 많을 거예요.ㅋ
저는 이럴 때 자주 이용하고 있는데요. 유용하게 쓸 일이 많을 거예요.
◆ webhook.site 사이트에 접속합니다.
◆ 사이트 접속하시면 바로 URL과 이메일이 생성됩니다.
Your unique URL
your unique email address
내가 전송한 데이터를 받아주는
나의 전용 웹서버와 나의 전용 이메일이 자동으로 만들어집니다.
이 URL를 이용해서 맘대로 전송하고 확인할 수 있습니다.
왼쪽 파란색 화살표를 보시면
Waiting for first request...라고 표시되어 있네요.
요청을 계속 기다리고 있는 거 같습니다. ㅋ
◆ Your unique URL 복사
프로그램 소스에 적용해서 테스트를 해봤습니다.
https://webhook.site/3c6e5f16-c130-4473-b763-25c152b20930
◆ Raw Contnet
내가 만든 JSON 데이터가 보기 좋게 표시되어 있네요. ^^
* JSON http 전송하기 샘플 Source
import org.json.simple.JSONArray; import org.json.simple.JSONObject; public class Two2 { public static void main(String[] args) { //JSON 데이터 만들기 JSONObject jsonob = new JSONObject(); JSONArray jsonarr = new JSONArray(); for(int i=1;i<3;i++) { JSONObject data = new JSONObject(); data.put("이름", "인간_"+i); data.put("나이",10+i); data.put("주소", "서울 중앙로 "+i+"길"); jsonarr.add(data); } jsonob.put("사람들", jsonarr); System.out.println(jsonob); //JSON 데이터 HTTP POST 전송하기 try { String host_url = "https://webhook.site/3c6e5f16-c130-4473-b763-25c152b20930"; HttpURLConnection conn = null; URL url = new URL(host_url); conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("POST");//POST GET conn.setRequestProperty("Content-Type", "application/json"); //POST방식으로 스트링을 통한 JSON 전송 conn.setDoOutput(true); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream())); bw.write(jsonob.toString()); bw.flush(); bw.close(); //서버에서 보낸 응답 데이터 수신 받기 BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String returnMsg = in.readLine(); System.out.println("응답메시지 : " + returnMsg ); //HTTP 응답 코드 수신 int responseCode = conn.getResponseCode(); if(responseCode == 400) { System.out.println("400 : 명령을 실행 오류"); } else if (responseCode == 500) { System.out.println("500 : 서버 에러."); } else { //정상 . 200 응답코드 . 기타 응답코드 System.out.println(responseCode + " : 응답코드임"); } }catch(IOException ie) { System.out.println("IOException " + ie.getCause()); ie.printStackTrace(); }catch(Exception ee) { System.out.println("Exception " + ee.getCause()); ee.printStackTrace(); } } } |
감사합니다.
'IT > PROGRAM' 카테고리의 다른 글
빠른 자바 개발도구 IntelliJ IDEA 설치하기 . 이클립스와 비교 (0) | 2021.06.01 |
---|---|
오라클(Oracle) 날짜 포멧 SYSDATE . 유용한 날짜함수들 (0) | 2021.04.09 |
리눅스 CentOS8 PYTHON 3 (파이썬) 설치하기 (2) | 2021.03.05 |
JSON란? JAVA(자바)에서 JSON 데이타 만들기 (4) | 2021.02.10 |
이클립스 STS 화면 글자 색깔 테마 변경하기 Light . Classic . Dark (82) | 2020.12.21 |
댓글