URL(대체로 HTTP)을 통해 서버와 통신할 때 URLConnection 또는 HttpURLConnection 클래스를 사용한다.
URLConnection 클래스는 일반적인 URL에 대한 API를 제공하고, 서브 클래스로 HttpURLConnection가 있어 HTTP 고유의 기능에 대한 추가 기능을 제공한다. 두 클래스 모두 추상클랙스로 새 인스턴스를 만들 수 없다.
프로토콜이 http://인 경우 반환 객체로 HttpURLConnection 캐스팅할 수 있다.
val url: URL? = URL(apiUrl)
var huc: HttpURLConnection? = null
huc = url.openConnection() as HttpURLConnection
//연결 타임아웃
huc.connectTimeout = 1000
//읽기 타임아웃
huc.readTimeout = 1000
//연결
huc.connect()
//결과
var result: String? = null
//HTTP 응답 코드가 200인 경우 성공
if(huc.responseCode == HttpURLConnection.HTTP_OK) {
//HTTP 응답의 본문 데이터를 읽어오는 스트림
huc.inputStram.use { is ->
//바이트 입력 스트림인 inputStream을 문자 입력 스트림으로 변환
InputStreamReader(is).use { isr ->
//InputStreamReader를 감싸서 버퍼링 기능을 제공
BufferedReader(isr).use { reader ->
//InputStreamReader에서 전체 응답 읽고 result에 할당
result = reader.readText()
}
}
}
}
huc.disconnect()
'⚙️ 개발 > Kotlin' 카테고리의 다른 글
?: (0) | 2024.11.21 |
---|---|
use, useLinse (0) | 2024.10.29 |
StringBuffer, StringBuilder (0) | 2024.10.29 |