Back End/Java

URLConnection 네트워킹 API

DevHam94 2023. 7. 27. 01:50

Jsoup은 html만을 가져올 수 있었는데. 다른 리소스 예를들어 html, json, xml, 이미지, 파일(음악, 영상)파일을  내 컴퓨터로 가져올수있다. 네트워크 관련 API를 이용하면 되는데 URLConnection api의 하위의 http에 특화된 HttpURLConnection 클래스를 이용하면 특정 웹서버에서 데이터를 가져올 수 있다. 
여기서는 가져오는 절차가 있다.

1 URL 생성 어느 사이트에서 데이터를 가져올지 url을 정해준다. 
2 HttpURLConnection 초기화 연결을 할려면 이 클래스를 이용해 초기화를 해야한다. openConnection()을 이용해 HttpURLConnection 객체를 얻는다. 
3 Http 메서드 설정 (예: GET) 요청을 하기위해 GET, POST 등의 방식을 정해준다. 위에서 생성된 객체의 setRequestMethod()를 이용해서 HTTP 메서드(GET, POST 등)을 설정해준다. 
4 요청 헤더 설정 (선택사항) 요청할때 필요하다면 key값 같은 필요한 정보를 넘겨야한다. setRequestProperty()를 사용해 요청 헤더를 설정한다. 
5 요청 본문 작성 (선택사항) 요청에 parameter가 필요하다면 parameter도 넘겨야한다. 요청시 서버가 json, html, 이미지, 영상 등 어떤형식으로 데이터를 넘겨줄지도 정할 수 있다. GET, POST 등의 메서드를 사용시 출력 스트림을 사용하여 본문을 작성한다. 
6 응답 코드 확인 요청시 잘못된 응답인지 정상적인 응답인지 응답코드를 넘겨준다. getResponseCode()를 통해 HTTP 응답 코드를 확인가능하다. (정상적일때는 코드 200이 뜬다.)
7 응답 헤더 읽기 (선택사항) 서버가 응답을 할때 헤더가 넘어올 수 있다. 데이터 파일의 사이즈 같은. getHeaderField() 등의 메서드를 사용하여 응답 헤더를 읽는다. 
8 응답 본문 읽기 서버가 응답해준 데이터를 읽어드린다. 대부분 반복문을 이용해서 응답데이터를 받아온다. InputStream I/O 방식으로 데이터를 읽어온다. 
9 연결 종료 종료후 서버와의 연결을 종료한다. 

특정사이트에서 open api를 가져올려면 보통 회원가입을 해야한다.

발급된 키는 온라인에서 공개적으로 오픈되면 안된다. 

 

 

'Back End > Java' 카테고리의 다른 글

HashMap으로 정보를 이용하기 예제  (0) 2024.02.06
poi(excel 라이브러리), iText(pdf 라이브러리)  (0) 2023.07.27
Jsoup API를 이용한 웹크롤링  (0) 2023.07.27
기타 API들  (0) 2023.07.26
스트림 API(stream)  (0) 2023.07.24