Default Request

    Example

    1. import io.ktor.client.*
    2. import io.ktor.client.engine.*
    3. import io.ktor.client.engine.mock.*
    4. import io.ktor.client.features.*
    5. import io.ktor.client.request.*
    6. import io.ktor.http.*
    7. import kotlinx.coroutines.experimental.*
    8. import kotlinx.coroutines.experimental.io.*
    9. fun main(args: Array<String>) = runBlocking {
    10. val client = HttpClient(MockEngine) {
    11. engine {
    12. // Register request handler.
    13. addHandler { request ->
    14. append("method=$method,")
    15. append("host=${url.host},")
    16. append("port=${url.port},")
    17. append("path=${url.fullPath},")
    18. append("headers=$headers")
    19. }
    20. val responseHeaders = headersOf("Content-Type" to listOf(ContentType.Text.Plain.toString()))
    21. respond(responseText, headers = responseHeaders)
    22. }
    23. }
    24. }
    25. // Configure default request feature.
    26. defaultRequest {
    27. host = "127.0.0.1"
    28. port = 8080
    29. header("X-My-Header", "MyValue")
    30. }
    31. }
    32. val result = client.get<String> {
    33. url {
    34. encodedPath = "/demo"
    35. }
    36. }
    37. println(result)
    38. // Prints: method=HttpMethod(value=HEAD), host=127.0.0.1, port=8080, path=/demo, headers=Headers [X-My-Header=[MyValue], Accept=[*/*]]
    39. }