Default Request
Example
import io.ktor.client.*
import io.ktor.client.engine.*
import io.ktor.client.engine.mock.*
import io.ktor.client.features.*
import io.ktor.client.request.*
import io.ktor.http.*
import kotlinx.coroutines.experimental.*
import kotlinx.coroutines.experimental.io.*
fun main(args: Array<String>) = runBlocking {
val client = HttpClient(MockEngine) {
engine {
// Register request handler.
addHandler { request ->
append("method=$method,")
append("host=${url.host},")
append("port=${url.port},")
append("path=${url.fullPath},")
append("headers=$headers")
}
val responseHeaders = headersOf("Content-Type" to listOf(ContentType.Text.Plain.toString()))
respond(responseText, headers = responseHeaders)
}
}
}
// Configure default request feature.
defaultRequest {
host = "127.0.0.1"
port = 8080
header("X-My-Header", "MyValue")
}
}
val result = client.get<String> {
url {
encodedPath = "/demo"
}
}
println(result)
// Prints: method=HttpMethod(value=HEAD), host=127.0.0.1, port=8080, path=/demo, headers=Headers [X-My-Header=[MyValue], Accept=[*/*]]
}