You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 02:58:10