All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tech.harmonysoft.oss.http.client.HttpClient.kt Maven / Gradle / Ivy

package tech.harmonysoft.oss.http.client

import org.apache.hc.client5.http.classic.methods.*
import org.apache.hc.core5.http.HttpEntity
import tech.harmonysoft.oss.http.client.response.HttpResponse
import tech.harmonysoft.oss.http.client.response.HttpResponseConverter

interface HttpClient {

    fun  execute(
        request: HttpUriRequestBase,
        converter: HttpResponseConverter,
        headers: Map = emptyMap()
    ): HttpResponse

    fun get(url: String, headers: Map = emptyMap()): HttpResponse {
        return get(url, HttpResponseConverter.STRING, headers)
    }

    fun  get(
        url: String,
        converter: HttpResponseConverter,
        headers: Map = emptyMap()
    ): HttpResponse {
        return execute(HttpGet(url), converter, headers)
    }

    fun  post(
        url: String,
        entity: HttpEntity,
        converter: HttpResponseConverter,
        headers: Map = emptyMap()
    ): HttpResponse {
        return execute(HttpPost(url).apply { this.entity = entity }, converter, headers)
    }

    fun  put(
        url: String,
        entity: HttpEntity,
        converter: HttpResponseConverter,
        headers: Map = emptyMap()
    ): HttpResponse {
        return execute(HttpPut(url).apply { this.entity = entity }, converter, headers)
    }

    fun  delete(
        url: String,
        converter: HttpResponseConverter,
        headers: Map = emptyMap()
    ): HttpResponse {
        return execute(HttpDelete(url), converter, headers)
    }

    fun close()
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy