Skip to content
This repository has been archived by the owner on Jan 18, 2024. It is now read-only.
Jong Wook Kim edited this page Feb 2, 2017 · 1 revision

간단하게 비동기 http 요청을 할 수 있으며 내부적으로 async-http-client를 이용합니다.

import com.kakao.mango.http._
import com.kakao.mango.concurrent._

val future: Future[Response] = Get("http://example.com/")
val response: Response = future.sync()
println(response.body) // "<!doctype html>\n<html> ..."

Get, Post, Put, Delete, Head 등 다양한 HTTP method를 사용할 수 있으며, 다음과 같이 request body와 HTTP 헤더를 포함하여 요쳥하는 것이 가능합니다.

val future = Post("http://example.com/", "param=value", "Content-Type" -> "application/x-www-form-urlencoded")
val response = future.sync()

.json() 메소드를 이용하면 주어진 오브젝트를 JSON으로 변환하여 request body로 사용합니다.

val future = Post.json("http://example.com/", Map("key" -> "value"))
val response = future.sync()

com.kakao.mango.http.Response trait에는 다음과 같은 메소드가 있어서 다양한 방식으로 HTTP응답을 처리할 수 있습니다.

메소드 타입 내용
status Int HTTP 상태 코드
headers Map[String,String] 전체 HTTP 헤더
header(name:String) String 주어진 이름의 HTTP 헤더
contentType String 응답의 Content Type
body String 응답 body를 UTF-8 문자열로 파싱한 결과
bytes Array[Byte] 응답 body 전체를 담은 바이트 배열
stream InputStream 응답 body를 스트리밍으로 읽을 수 있는 InputStream
as[T] T JSON 형태의 응답 body를 주어진 타입 T로 파싱한 결과
json Map[String,Any] JSON 형태의 응답 body를 파싱한 결과
Clone this wiki locally