你可以在一行中要求整个工具包
//> using toolkit latest
或者,你只需要求 sttp 的特定版本
//> using dep com.softwaremill.sttp.client4::core:4.0.0-M1
在你的 build.sbt 文件中,你可以添加对工具包的依赖
lazy val example = project.in(file("example"))
.settings(
scalaVersion := "3.2.2",
libraryDependencies += "org.scala-lang" %% "toolkit" % "0.1.7"
)
或者,你只需要求 sttp 的特定版本
libraryDependencies += "com.softwaremill.sttp.client4" %% "core" % "4.0.0-M1"
在你的 build.sc 文件中,你可以添加对工具包的依赖
object example extends ScalaModule {
def scalaVersion = "3.2.2"
def ivyDeps =
Agg(
ivy"org.scala-lang::toolkit:0.1.7"
)
}
或者,你只需要求 sttp 的特定版本
ivy"com.softwaremill.sttp.client4::core:4.0.0-M1"
发送带字符串正文的请求
要发送带字符串正文的 POST 请求,你可以将 post
和 body
链到 quickRequest
上
import sttp.client4.quick._
val response = quickRequest
.post(uri"https://example.com/")
.body("Lorem ipsum")
.send()
println(response.code)
// prints: 200
import sttp.client4.quick.*
val response = quickRequest
.post(uri"https://example.com/")
.body("Lorem ipsum")
.send()
println(response.code)
// prints: 200
在带字符串正文的请求中,sttp 会添加 Content-Type: text/plain; charset=utf-8
头并计算 Content-Length
头。
二进制数据
body
方法还可以采用 Array[Byte]
、ByteBuffer
或 InputStream
。
val bytes: Array[Byte] = "john".getBytes
val request = quickRequest.post(uri"https://example.com/").body(bytes)
请求的二进制正文使用 Content-Type: application/octet-stream
发送。
在 sttp 文档中关于请求正文的章节 中了解更多信息。
此页面的贡献者
内容
- 介绍
- 使用 MUnit 进行测试
- 如何编写测试?
- 如何运行测试?
- 如何运行单个测试?
- 如何测试异常?
- 如何编写异步测试?
- 如何管理测试的资源?
- MUnit 还能做什么?
- 使用 OS-Lib 处理文件和进程
- 如何读取目录?
- 如何读取文件?
- 如何写入文件?
- 如何运行进程?
- OS-Lib 还能做什么?
- 使用 uPickle 处理 JSON
- 如何在 JSON 中访问值?
- 如何修改 JSON?
- 如何将 JSON 反序列化为对象?
- 如何将对象序列化为 JSON?
- 如何读写 JSON 文件?
- uPickle 还能做什么?
- 使用 sttp 发送 HTTP 请求
- 如何发送请求?
- 如何构造 URI 和查询参数?
- 如何发送带正文的请求?
- 如何发送和接收 JSON?
- 如何通过 HTTP 上传文件?
- sttp 还能做什么?