您可以在單一行中要求整個工具包
//> using toolkit latest
或者,您也可以只要求特定版本的 sttp
//> using dep com.softwaremill.sttp.client4::core:4.0.0-M1
在您的 build.sbt 檔案中,您可以新增對 Toolkit 的依賴關係
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 檔案中,您可以新增對 Toolkit 的依賴關係
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"
傳送 HTTP 要求
使用 sttp 傳送要求最簡單的方式是 quickRequest
。
您可以使用 .get
定義 GET 要求,並使用 .send
傳送要求。
import sttp.client4.quick._
import sttp.client4.Response
val response: Response[String] = quickRequest
.get(uri"https://httpbin.org/get")
.send()
println(response.code)
// prints: 200
println(response.body)
// prints some JSON string
import sttp.client4.quick.*
import sttp.client4.Response
val response: Response[String] = quickRequest
.get(uri"https://httpbin.org/get")
.send()
println(response.code)
// prints: 200
println(response.body)
// prints some JSON string
Response[String]
包含狀態碼和字串主體。
要求定義
HTTP 方法和 URI
若要指定 quickRequest
的 HTTP 方法和 URI,您可以使用 get
、post
、put
或 delete
。
若要建構 URI,您可以使用 uri
插補器,例如 uri"https://example.com"
。若要深入了解這一點,請參閱 如何建構 URI 和查詢參數?。
標頭
預設情況下,quickRequest
包含「Accept-Encoding」和「deflate」標頭。若要新增更多標頭,您可以呼叫其中一個 header
或 headers
重載
import sttp.client4.quick._
val request = quickRequest
.get(uri"https://example.com")
.header("Origin", "https://scala-lang.org")
println(request.headers)
// prints: Vector(Accept-Encoding: gzip, deflate, Origin: https://scala-lang.org)
import sttp.client4.quick.*
val request = quickRequest
.get(uri"https://example.com")
.header("Origin", "https://scala-lang.org")
println(request.headers)
// prints: Vector(Accept-Encoding: gzip, deflate, Origin: https://scala-lang.org)
如果要求包含主體,sttp 也可以自動新增「Content-Type」和「Content-Length」。
驗證
如果您需要驗證才能存取資源,您可以使用 auth.basic
、auth.basicToken
、auth.bearer
或 auth.digest
方法之一。
import sttp.client4.quick._
// a request with a authentication
val request = quickRequest
.get(uri"https://example.com")
.auth.basic(user = "user", password = "***")
import sttp.client4.quick.*
// a request with a authentication
val request = quickRequest
.get(uri"https://example.com")
.auth.basic(user = "user", password = "***")