|
可以使用 Apache HttpComponents 的 HttpClient 在 Kotlin 中执行 HTTP 请求。下面是一个简单的示例,展示了如何使用 HttpClient 发送 GET 和 POST 请求。
首先,确保你已经在项目的 build.gradle.kts 文件中添加了 HttpComponents 的依赖- dependencies {
- implementation("org.apache.httpcomponents:httpclient:4.5.13")
- }
复制代码 接下来,编写 Kotlin 代码来发送 HTTP 请求
- import org.apache.http.HttpEntity
- import org.apache.http.HttpResponse
- import org.apache.http.client.methods.HttpGet
- import org.apache.http.client.methods.HttpPost
- import org.apache.http.entity.StringEntity
- import org.apache.http.impl.client.CloseableHttpClient
- import org.apache.http.impl.client.HttpClients
- import org.apache.http.util.EntityUtils
- import java.io.IOException
- fun main() {
- // 创建一个CloseableHttpClient实例
- val httpClient: CloseableHttpClient = HttpClients.createDefault()
- // 发送GET请求
- sendGetRequest(httpClient, "http://example.com")
- // 发送POST请求
- sendPostRequest(httpClient, "http://example.com/api", "{"key":"value"}")
- // 关闭HttpClient实例
- try {
- httpClient.close()
- } catch (e: IOException) {
- e.printStackTrace()
- }
- }
- fun sendGetRequest(httpClient: CloseableHttpClient, url: String) {
- val httpGet: HttpGet = HttpGet(url)
- try {
- val response: HttpResponse = httpClient.execute(httpGet)
- val entity: HttpEntity = response.entity
- val responseBody: String = EntityUtils.toString(entity, "UTF-8")
- println("GET Response Status: ${response.statusLine}")
- println("GET Response Body: $responseBody")
- } catch (e: IOException) {
- e.printStackTrace()
- }
- }
- fun sendPostRequest(httpClient: CloseableHttpClient, url: String, json: String) {
- val httpPost: HttpPost = HttpPost(url)
- httpPost.setHeader("Content-Type", "application/json")
- httpPost.entity = StringEntity(json, "UTF-8")
- try {
- val response: HttpResponse = httpClient.execute(httpPost)
- val entity: HttpEntity = response.entity
- val responseBody: String = EntityUtils.toString(entity, "UTF-8")
- println("POST Response Status: ${response.statusLine}")
- println("POST Response Body: $responseBody")
- } catch (e: IOException) {
- e.printStackTrace()
- }
- }
复制代码 代码说明:
1、创建 HttpClient 实例
- val httpClient: CloseableHttpClient = HttpClients.createDefault()
复制代码 2、发送 GET 请求:
创建一个 HttpGet 对象,并传入请求的 URL。
使用 httpClient.execute 方法执行请求。
使用 EntityUtils.toString 方法将响应实体转换为字符串并打印。
3、发送 POST 请求:
创建一个 HttpPost 对象,并传入请求的 URL。
设置请求头 Content-Type 为 application/json。
创建一个 StringEntity 对象,并传入 JSON 数据。
使用 httpClient.execute 方法执行请求。
使用 EntityUtils.toString 方法将响应实体转换为字符串并打印。
4、关闭 HttpClient 实例:
在请求完成后,关闭 CloseableHttpClient 实例以释放资源。
这个示例展示了如何使用 Apache HttpComponents 的 HttpClient 在 Kotlin 中发送 GET 和 POST 请求。你可以根据需要修改 URL 和请求数据
|
|