CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-com-squareup-okhttp3--okhttp

Square's meticulous HTTP client for Java and Kotlin

Pending
Overview
Eval results
Files

urls.mddocs/

URL Handling

HTTP URL parsing, building, and manipulation with full RFC compliance.

HttpUrl

Immutable URL with builder pattern for construction and modification.

class HttpUrl private constructor() {
    val scheme: String
    val username: String
    val password: String
    val host: String
    val port: Int
    val pathSize: Int
    val pathSegments: List<String>
    val querySize: Int
    val queryParameterNames: Set<String>
    val fragment: String?
    val isHttps: Boolean
    
    fun pathSegment(index: Int): String
    fun queryParameter(name: String): String?
    fun queryParameterValue(index: Int): String?
    fun queryParameterName(index: Int): String
    fun queryParameterValues(name: String): List<String>
    fun encodedQuery(): String?
    fun query(): String?
    fun encodedFragment(): String?
    fun encodedPath(): String
    fun encodedUsername(): String
    fun encodedPassword(): String
    fun pathSegments(): List<String>
    fun redact(): HttpUrl
    fun resolve(link: String): HttpUrl?
    fun newBuilder(): Builder
    fun newBuilder(link: String): Builder?
    fun toUrl(): URL
    fun toUri(): URI
    
    class Builder {
        fun scheme(scheme: String): Builder
        fun username(username: String): Builder
        fun encodedUsername(encodedUsername: String): Builder
        fun password(password: String): Builder
        fun encodedPassword(encodedPassword: String): Builder
        fun host(host: String): Builder
        fun port(port: Int): Builder
        fun addPathSegment(pathSegment: String): Builder
        fun addPathSegments(pathSegments: String): Builder
        fun addEncodedPathSegment(encodedPathSegment: String): Builder
        fun addEncodedPathSegments(encodedPathSegments: String): Builder
        fun setPathSegment(index: Int, pathSegment: String): Builder
        fun setEncodedPathSegment(index: Int, encodedPathSegment: String): Builder
        fun removePathSegment(index: Int): Builder
        fun encodedPath(encodedPath: String): Builder
        fun query(query: String?): Builder
        fun encodedQuery(encodedQuery: String?): Builder
        fun addQueryParameter(name: String, value: String?): Builder
        fun addEncodedQueryParameter(encodedName: String, encodedValue: String?): Builder
        fun setQueryParameter(name: String, value: String?): Builder
        fun setEncodedQueryParameter(encodedName: String, encodedValue: String?): Builder
        fun removeAllQueryParameters(name: String): Builder
        fun removeAllEncodedQueryParameters(encodedName: String): Builder
        fun fragment(fragment: String?): Builder
        fun encodedFragment(encodedFragment: String?): Builder
        fun build(): HttpUrl
    }
    
    companion object {
        fun parse(url: String): HttpUrl?
        fun get(url: String): HttpUrl
        fun get(url: URL): HttpUrl
        fun get(uri: URI): HttpUrl
    }
}

URL Building Examples

// Parse existing URL
val url = "https://api.example.com/users?page=1".toHttpUrl()

// Build URL programmatically  
val apiUrl = HttpUrl.Builder()
    .scheme("https")
    .host("api.example.com")
    .addPathSegment("users")
    .addPathSegment("123")
    .addQueryParameter("include", "profile")
    .addQueryParameter("format", "json")
    .build()

// Modify existing URL
val modifiedUrl = url.newBuilder()
    .addQueryParameter("limit", "50")
    .addPathSegment("details")
    .build()

Install with Tessl CLI

npx tessl i tessl/maven-com-squareup-okhttp3--okhttp

docs

caching.md

cookies.md

forms-multipart.md

http-client.md

index.md

interceptors.md

networking.md

requests-responses.md

security.md

urls.md

websockets.md

tile.json