如何使用Go Fiber Client向API端点发送GET请求?
在Go Fiber中使用Client发送GET请求
1. 安装依赖
确保项目引入Fiber v2相关包,执行以下命令完成安装:
go get github.com/gofiber/fiber/v2
2. 完整实现代码
针对https://jsonplaceholder.typicode.com/posts端点的GET请求实现如下:
package main import ( "encoding/json" "fmt" "log" "github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2/client" ) // 定义与API返回结构匹配的结构体 type Post struct { ID int `json:"id"` UserID int `json:"userId"` Title string `json:"title"` Body string `json:"body"` } func main() { // 初始化Fiber Client实例 c := client.New() // 发送GET请求 resp, err := c.Get("https://jsonplaceholder.typicode.com/posts") if err != nil { log.Fatalf("请求发送失败: %v", err) } // 必须关闭响应体,避免资源泄漏 defer resp.Body.Close() // 校验响应状态码 if resp.StatusCode != fiber.StatusOK { log.Fatalf("请求失败,状态码: %d", resp.StatusCode) } // 将响应体解析到结构体切片 var posts []Post if err := json.NewDecoder(resp.Body).Decode(&posts); err != nil { log.Fatalf("响应解析失败: %v", err) } // 打印示例结果 fmt.Printf("共获取到 %d 篇文章\n", len(posts)) for _, post := range posts[:3] { // 仅展示前3条数据 fmt.Printf("ID: %d, 标题: %s\n", post.ID, post.Title) } }
3. 关键代码说明
- Client实例化:
client.New()创建默认Client,也可通过client.Config自定义超时、请求头等参数。 - 请求发送:
c.Get()接收目标URL,返回响应对象和错误,需优先处理错误。 - 响应处理:通过
defer resp.Body.Close()确保响应体被关闭;利用resp.StatusCode判断请求是否成功。 - JSON解析:使用标准库
encoding/json解析响应体,结构体的json标签需与API返回字段完全匹配。
4. 自定义Client配置(可选)
若需设置超时、自定义请求头,可在初始化Client时传入配置:
import "time" // ... c := client.New(client.Config{ Timeout: 5 * time.Second, // 设置5秒请求超时 Headers: map[string]string{ "Accept": "application/json", }, })
内容的提问来源于stack exchange,提问作者javmah
相关产品推荐
相关产品推荐

