将 curl 转换为 Kotlin
curl2code 使用 OkHttp 将 curl 命令转换为 Kotlin 代码。转换过程通过 WebAssembly 在您的浏览器中运行,以确保完全的隐私。对于 Java,请查看我们的 curl 转 Java 转换器。对于 Swift (iOS),请参阅 curl 转 Swift。下方是实用的 Kotlin 示例。
如何从浏览器复制 curl
- 1
打开开发者工具
按 F12 或 Ctrl+Shift+I 打开浏览器开发者工具。
- 2
进入 Network 标签页
点击 Network (网络) 标签页,并执行触发 HTTP 请求的操作。
- 3
复制为 cURL
右键点击请求 → Copy (复制) → Copy as cURL (复制为 cURL)。然后将其粘贴到上方。
常见问题解答
什么是 Kotlin OkHttp?
OkHttp 是由 Square 开发的、广泛用于 Kotlin 和 Java 的 HTTP 客户端。它具有连接池、透明 GZIP、响应缓存和 HTTP/2 支持。通过 implementation("com.squareup.okhttp3:okhttp:4.x") 添加。它是 curl2code 用于 Kotlin 转换的默认库,也是 Android 的标准 HTTP 客户端。
OkHttp 对比 Ktor Client 对比 Fuel —— 该用哪一个?
OkHttp 是行业标准,尤其是对于 Android。Ktor Client 是 Kotlin 优先的,支持协程和多平台能力。Fuel 轻量级且具有简洁的 Kotlin DSL。对于 Android,OkHttp(通常通过 Retrofit)是默认选择。有关 JVM 的对比,请参阅我们的 curl 转 Java 转换器。
如何在 Kotlin 中处理身份验证?
添加请求头:request.addHeader("Authorization", "Bearer $token")。对于 Basic 认证:使用 Credentials.basic(user, pass) 工具类。OkHttp 还支持 Authenticator 接口,用于在 401 响应时使用凭据自动重试。curl2code 自动处理 -u 和 Bearer 标志。
如何在 Kotlin 中发送多部分表单数据?
使用 OkHttp 的 MultipartBody.Builder():文件使用 .addFormDataPart("file", filename, fileBody),字段使用 .addFormDataPart("key", "value")。设置 .setType(MultipartBody.FORM)。curl2code 将 -F 标志转换为正确的 OkHttp 多部分构建器代码。
如何在 Kotlin 中处理 HTTP 错误?
检查 response.isSuccessful 以确认 2xx 状态或读取 response.code。OkHttp 在网络故障时抛出 IOException。使用 Kotlin 的 runCatching { } 或 try/catch 进行简洁的错误处理。始终使用 .use { } 块关闭响应体以防止资源泄漏。
如何在 OkHttp 中使用协程?
将阻塞的 OkHttp 调用包装在 withContext(Dispatchers.IO) { client.newCall(request).execute() } 中。或者使用 suspendCancellableCoroutine 扩展配合 enqueue() 实现真正的异步。Ktor Client 内置了原生协程支持。有关类似的异步模式,请参阅 curl 转 Swift (async/await)。
如何在 Kotlin OkHttp 中设置超时?
在客户端上配置:OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS).writeTimeout(30, TimeUnit.SECONDS).build()。对于重试,添加一个在失败时重试的拦截器。这些对应于 curl 的 --connect-timeout 和 --max-time。
如何在 OkHttp 中使用代理?
在客户端构建器上设置:OkHttpClient.Builder().proxy(Proxy(Proxy.Type.HTTP, InetSocketAddress("proxy", 8080))).build()。对于身份验证,添加 proxyAuthenticator。OkHttp 还通过 Proxy.Type.SOCKS 支持 SOCKS 代理。curl2code 将 -x 标志转换为此配置。
如何在 Kotlin 中发送带有 JSON 正文的 POST 请求?
使用 curl2code 将类似于 curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL 的 curl POST 命令转换为 Kotlin。生成的代码使用 RequestBody.create(MediaType.parse("application/json"), json)。curl2code 会自动检测带有 JSON 内容的 -d/--data 标志,并在 OkHttp 代码中设置相应的 Content-Type 请求头。
如何在 Kotlin 中添加 Bearer 令牌授权?
将 curl -H "Authorization: Bearer YOUR_TOKEN" URL 传递给 curl2code,它会生成带有认证请求头的 OkHttp 代码:.addHeader("Authorization", "Bearer YOUR_TOKEN")。curl2code 会从 -H "Authorization: Bearer ..." 和 --oauth2-bearer 标志中检测 Bearer 令牌。对于 Basic auth,请使用 -u user:pass。
如何在 Kotlin 中设置 Content-Type 请求头?
curl2code 将 curl -H "Content-Type: application/json" URL 转换为带有正确请求头的 OkHttp 代码:.addHeader("Content-Type", "application/json")。对于 -d 数据,curl 默认使用 application/x-www-form-urlencoded;对于 -F 表单上传,它使用 multipart/form-data。curl2code 会将每一项映射到正确的 OkHttp API。