如何使用 Gleam 发出 HTTP 请求?
How do you make an HTTP request with Gleam?
我正在尝试 gleam 编程语言,我希望做一些简单的事情来感受这种语言。我想尝试的一件事是发出 HTTP 请求,我已经做到了:
import gleam/io
import gleam/http/request
import gleam/uri.{parse}
pub fn main() {
try uri = parse("https://lichess.org/api/puzzle/daily")
let req = request.from_uri(uri)
io.debug(req)
}
如果我 运行 输出
{ok,{request,get,[],<<>>,https,<<"lichess.org">>,none,<<"/api/puzzle/daily">>,
none}}
这让我认为 Request
对象正在正确构建,但我没有看到任何请求。如何触发此请求?
我在写出这个问题的过程中发现 gleam/http
库实际上并没有提供 HTTP 客户端,而这正是我一直在寻找的。同样,它不提供 HTTP 服务器,但是,gleam/http
文档中的所有示例都展示了如何使用 gleam/cowboy or gleam/elli 设置服务器,这使得它们与核心 gleam/http
图书馆对我来说很清楚。
正确的方法是使用 HTTP 客户端库,例如 gleam/hackney
我得到了以下代码:
import gleam/io
import gleam/hackney
import gleam/http/request
import gleam/uri.{parse}
pub fn main() {
try uri = parse("https://lichess.org/api/puzzle/daily")
try req = request.from_uri(uri)
let resp = hackney.send(req)
case resp {
Ok(r) -> io.println(r.body)
Error(_e) -> io.println("Failed")
}
Ok(Nil)
}
正确执行请求并打印正文
我正在尝试 gleam 编程语言,我希望做一些简单的事情来感受这种语言。我想尝试的一件事是发出 HTTP 请求,我已经做到了:
import gleam/io
import gleam/http/request
import gleam/uri.{parse}
pub fn main() {
try uri = parse("https://lichess.org/api/puzzle/daily")
let req = request.from_uri(uri)
io.debug(req)
}
如果我 运行 输出
{ok,{request,get,[],<<>>,https,<<"lichess.org">>,none,<<"/api/puzzle/daily">>,
none}}
这让我认为 Request
对象正在正确构建,但我没有看到任何请求。如何触发此请求?
我在写出这个问题的过程中发现 gleam/http
库实际上并没有提供 HTTP 客户端,而这正是我一直在寻找的。同样,它不提供 HTTP 服务器,但是,gleam/http
文档中的所有示例都展示了如何使用 gleam/cowboy or gleam/elli 设置服务器,这使得它们与核心 gleam/http
图书馆对我来说很清楚。
正确的方法是使用 HTTP 客户端库,例如 gleam/hackney
我得到了以下代码:
import gleam/io
import gleam/hackney
import gleam/http/request
import gleam/uri.{parse}
pub fn main() {
try uri = parse("https://lichess.org/api/puzzle/daily")
try req = request.from_uri(uri)
let resp = hackney.send(req)
case resp {
Ok(r) -> io.println(r.body)
Error(_e) -> io.println("Failed")
}
Ok(Nil)
}
正确执行请求并打印正文