Package io.ktor.client.request

Types

ClientUpgradeContent

abstract class ClientUpgradeContent : NoContent

DefaultHttpRequest

open class DefaultHttpRequest : HttpRequest

Default HttpRequest implementation.

HttpRequest

interface HttpRequest : HttpMessage, CoroutineScope

A request for HttpClient, first part of HttpClientCall.

HttpRequestBuilder

class HttpRequestBuilder : HttpMessageBuilder

Class for building HttpRequestData.

HttpRequestData

class HttpRequestData

Actual data of the HttpRequest, including url, method, headers, body and executionContext. Built by HttpRequestBuilder.

HttpRequestPipeline

class HttpRequestPipeline : Pipeline<Any, HttpRequestBuilder>

HttpClient Pipeline used for executing HttpRequest.

HttpResponseData

class HttpResponseData

Data prepared for HttpResponse.

HttpSendPipeline

class HttpSendPipeline : Pipeline<Any, HttpRequestBuilder>

HttpClient Pipeline used for sending HttpRequest to remote server.

Properties

host

Gets the associated URL’s host.

port

Gets the associated URL’s port.

Functions

accept

fun HttpRequestBuilder.accept(contentType: ContentType): Unit

Sets the Accept header with a specific contentType.

delete

suspend fun <T> HttpClient.delete(
    builder: HttpRequestBuilder
): T

Executes a HttpClient DELETE request, with the information from the builder and tries to receive a specific type T, if fails, an exception is thrown.

suspend fun <T> HttpClient.delete(
    scheme: String = "http",
    host: String = "localhost",
    port: Int = DEFAULT_PORT,
    path: String = "/",
    body: Any = EmptyContent,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient DELETE request, with the specified scheme, host, port, path and body. And allows to further configure the request, using a block receiving an HttpRequestBuilder.

suspend fun <T> HttpClient.delete(
    urlString: String,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient DELETE request, with the specified url as URL and an optional block receiving an HttpRequestBuilder for further configuring the request.

suspend fun <T> HttpClient.delete(
    url: Url,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient HEAD request, with the specified url as Url and an optional block receiving an HttpRequestBuilder for further configuring the request.

suspend fun <T> HttpClient.delete(
    url: URL,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient HEAD request, with the specified url as URL and an optional block receiving an HttpRequestBuilder for further configuring the request.

get

suspend fun <T> HttpClient.get(
    builder: HttpRequestBuilder
): T

Executes a HttpClient GET request, with the information from the builder and tries to receive a specific type T, if fails, an exception is thrown.

suspend fun <T> HttpClient.get(
    scheme: String = "http",
    host: String = "localhost",
    port: Int = DEFAULT_PORT,
    path: String = "/",
    body: Any = EmptyContent,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient GET request, with the specified scheme, host, port, path and body. And allows to further configure the request, using a block receiving an HttpRequestBuilder.

suspend fun <T> HttpClient.get(
    urlString: String,
    block: HttpRequestBuilder.() -> Unit = {}
): T
suspend fun <T> HttpClient.get(
    url: URL,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient GET request, with the specified url as URL and an optional block receiving an HttpRequestBuilder for further configuring the request.

suspend fun <T> HttpClient.get(
    url: Url,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient GET request, with the specified url as Url and an optional block receiving an HttpRequestBuilder for further configuring the request.

head

suspend fun <T> HttpClient.head(
    builder: HttpRequestBuilder
): T

Executes a HttpClient HEAD request, with the information from the builder and tries to receive a specific type T, if fails, an exception is thrown.

suspend fun <T> HttpClient.head(
    scheme: String = "http",
    host: String = "localhost",
    port: Int = DEFAULT_PORT,
    path: String = "/",
    body: Any = EmptyContent,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient HEAD request, with the specified scheme, host, port, path and body. And allows to further configure the request, using a block receiving an HttpRequestBuilder.

suspend fun <T> HttpClient.head(
    urlString: String,
    block: HttpRequestBuilder.() -> Unit = {}
): T
suspend fun <T> HttpClient.head(
    url: URL,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient HEAD request, with the specified url as URL and an optional block receiving an HttpRequestBuilder for further configuring the request.

suspend fun <T> HttpClient.head(
    url: Url,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient HEAD request, with the specified url as Url and an optional block receiving an HttpRequestBuilder for further configuring the request.

header

fun HttpRequestBuilder.header(key: String, value: Any?): Unit

Sets a single header of key with a specific value if the value is not null.

headers

fun HttpRequestBuilder.headers(
    block: HeadersBuilder.() -> Unit
): HeadersBuilder

Executes a block that configures the HeadersBuilder associated to this request.

isUpgradeRequest

fun HttpRequestData.isUpgradeRequest(): Boolean

options

suspend fun <T> HttpClient.options(
    builder: HttpRequestBuilder
): T

Executes a HttpClient OPTIONS request, with the information from the builder and tries to receive a specific type T, if fails, an exception is thrown.

suspend fun <T> HttpClient.options(
    scheme: String = "http",
    host: String = "localhost",
    port: Int = DEFAULT_PORT,
    path: String = "/",
    body: Any = EmptyContent,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient OPTIONS request, with the specified scheme, host, port, path and body. And allows to further configure the request, using a block receiving an HttpRequestBuilder.

suspend fun <T> HttpClient.options(
    urlString: String,
    block: HttpRequestBuilder.() -> Unit = {}
): T
suspend fun <T> HttpClient.options(
    url: URL,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient OPTIONS request, with the specified url as URL and an optional block receiving an HttpRequestBuilder for further configuring the request.

suspend fun <T> HttpClient.options(
    url: Url,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient OPTIONS request, with the specified url as Url and an optional block receiving an HttpRequestBuilder for further configuring the request.

parameter

fun HttpRequestBuilder.parameter(
    key: String,
    value: Any?
): Unit

Sets a single URL query parameter of key with a specific value if the value is not null. Can not be used to set form parameters in the body.

patch

suspend fun <T> HttpClient.patch(
    builder: HttpRequestBuilder
): T

Executes a HttpClient PATCH request, with the information from the builder and tries to receive a specific type T, if fails, an exception is thrown.

suspend fun <T> HttpClient.patch(
    scheme: String = "http",
    host: String = "localhost",
    port: Int = DEFAULT_PORT,
    path: String = "/",
    body: Any = EmptyContent,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient PATCH request, with the specified scheme, host, port, path and body. And allows to further configure the request, using a block receiving an HttpRequestBuilder.

suspend fun <T> HttpClient.patch(
    urlString: String,
    block: HttpRequestBuilder.() -> Unit = {}
): T
suspend fun <T> HttpClient.patch(
    url: URL,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient PATCH request, with the specified url as URL and an optional block receiving an HttpRequestBuilder for further configuring the request.

suspend fun <T> HttpClient.patch(
    url: Url,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient PATCH request, with the specified url as Url and an optional block receiving an HttpRequestBuilder for further configuring the request.

post

suspend fun <T> HttpClient.post(
    builder: HttpRequestBuilder
): T

Executes a HttpClient POST request, with the information from the builder and tries to receive a specific type T, if fails, an exception is thrown.

suspend fun <T> HttpClient.post(
    scheme: String = "http",
    host: String = "localhost",
    port: Int = DEFAULT_PORT,
    path: String = "/",
    body: Any = EmptyContent,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient POST request, with the specified scheme, host, port, path and body. And allows to further configure the request, using a block receiving an HttpRequestBuilder.

suspend fun <T> HttpClient.post(
    urlString: String,
    block: HttpRequestBuilder.() -> Unit = {}
): T
suspend fun <T> HttpClient.post(
    url: URL,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient POST request, with the specified url as URL and an optional block receiving an HttpRequestBuilder for further configuring the request.

suspend fun <T> HttpClient.post(
    url: Url,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient POST request, with the specified url as Url and an optional block receiving an HttpRequestBuilder for further configuring the request.

put

suspend fun <T> HttpClient.put(
    builder: HttpRequestBuilder
): T

Executes a HttpClient PUT request, with the information from the builder and tries to receive a specific type T, if fails, an exception is thrown.

suspend fun <T> HttpClient.put(
    scheme: String = "http",
    host: String = "localhost",
    port: Int = DEFAULT_PORT,
    path: String = "/",
    body: Any = EmptyContent,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient PUT request, with the specified scheme, host, port, path and body. And allows to further configure the request, using a block receiving an HttpRequestBuilder.

suspend fun <T> HttpClient.put(
    urlString: String,
    block: HttpRequestBuilder.() -> Unit = {}
): T
suspend fun <T> HttpClient.put(
    url: URL,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient PUT request, with the specified url as URL and an optional block receiving an HttpRequestBuilder for further configuring the request.

suspend fun <T> HttpClient.put(
    url: Url,
    block: HttpRequestBuilder.() -> Unit = {}
): T

Executes a HttpClient PUT request, with the specified url as Url and an optional block receiving an HttpRequestBuilder for further configuring the request.

request

suspend fun <T> HttpClient.request(
    builder: HttpRequestBuilder = HttpRequestBuilder()
): T

Executes a HttpClient request, with the information from the builder and tries to receive a specific type T, if fails, an exception is thrown.

suspend fun <T> HttpClient.request(
    block: HttpRequestBuilder.() -> Unit
): T

Executes a HttpClient request, with the information configured in builder block and tries to receive a specific type T, if fails, an exception is thrown.

suspend fun <T> HttpClient.request(
    urlString: String,
    block: HttpRequestBuilder.() -> Unit
): T

Executes a HttpClient request, with the urlString and the information configured in builder block and tries to receive a specific type T, if fails, an exception is thrown.

suspend fun <T> HttpClient.request(
    url: Url,
    block: HttpRequestBuilder.() -> Unit
): T

Executes a HttpClient request, with the url and the information configured in builder block and tries to receive a specific type T, if fails, an exception is thrown.

fun request(
    block: HttpRequestBuilder.() -> Unit
): HttpRequestBuilder

Creates a HttpRequestBuilder and configures it with a block of code.

takeFrom

fun HttpRequestBuilder.takeFrom(
    request: HttpRequest
): HttpRequestBuilder

Mutates this copying all the data from another request using it as base.

fun HttpRequestBuilder.takeFrom(
    request: HttpRequestData
): HttpRequestBuilder

Sets the HttpRequestBuilder from request.

url

fun HttpRequestBuilder.url(
    block: URLBuilder.() -> Unit
): Unit

Executes a block that configures the URLBuilder associated to this request.

fun HttpRequestBuilder.url(
    scheme: String = "http",
    host: String = "localhost",
    port: Int = DEFAULT_PORT,
    path: String = "/",
    block: URLBuilder.() -> Unit = {}
): Unit

Sets the url using the specified scheme, host, port and path.

fun HttpRequestBuilder.url(urlString: String): Unit

Sets the HttpRequestBuilder.url from urlString.

fun HttpRequestBuilder.url(url: Url): Unit
fun HttpRequestBuilder.url(url: URL): Unit

Sets the HttpRequestBuilder.url from url.

Companion Object Functions

invoke

operator fun HttpRequestBuilder.Companion.invoke(
    block: URLBuilder.() -> Unit
): HttpRequestBuilder

Executes a block that configures the URLBuilder associated to thisrequest.

operator fun HttpRequestBuilder.Companion.invoke(
    scheme: String = "http",
    host: String = "localhost",
    port: Int = DEFAULT_PORT,
    path: String = "/",
    block: URLBuilder.() -> Unit = {}
): HttpRequestBuilder

Constructs a HttpRequestBuilder from URL information: scheme, host, port and path and optionally further configures it using block.

operator fun HttpRequestBuilder.Companion.invoke(
    url: URL
): HttpRequestBuilder

Constructs a HttpRequestBuilder from url.