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

com.hiczp.bilibili.api.retrofit.RetrofitExtension.kt Maven / Gradle / Ivy

There is a newer version: 0.2.0
Show newest version
package com.hiczp.bilibili.api.retrofit

import okhttp3.FormBody

inline fun FormBody.forEach(block: (String, String) -> Unit) {
    repeat(size()) {
        block(encodedName(it), encodedValue(it))
    }
}

fun FormBody.raw() =
        StringBuilder().apply {
            repeat(size()) {
                if (it != 0) append('&')
                append(encodedName(it))
                append('=')
                append(encodedValue(it))
            }
        }.toString()

fun FormBody.sortedRaw(): String {
    val nameAndValue = ArrayList()
    repeat(size()) {
        nameAndValue.add("${encodedName(it)}=${encodedValue(it)}")
    }
    return nameAndValue.sorted().joinToString(separator = "&")
}

fun FormBody.containsEncodedName(name: String): Boolean {
    repeat(size()) {
        if (encodedName(it) == name) return true
    }
    return false
}

fun FormBody.Builder.addAllEncoded(formBody: FormBody): FormBody.Builder {
    with(formBody) {
        repeat(size()) {
            addEncoded(encodedName(it), encodedValue(it))
        }
    }
    return this
}

internal typealias ParamExpression = Pair String?>

internal inline fun Array.forEachNonNull(action: (String, String) -> Unit) {
    forEach { (name, valueExpression) ->
        val value = valueExpression()
        if (value != null) {
            action(name, value)
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy