Skip to content

配置

Config 结构体提供了各种选项来自定义 HTTP 请求。

基本配置

go
response, err := fetch.Get("https://httpbin.zcorky.com/get", &fetch.Config{
	Timeout: 10 * time.Second,
	Headers: map[string]string{
		"User-Agent": "MyApp/1.0",
	},
})

配置选项

URL 和方法

  • URL: 请求的目标 URL
  • Method: HTTP 方法(GET、POST、PUT、PATCH、DELETE、HEAD)
  • BaseURL: 相对路径的基础 URL

请求头

go
&fetch.Config{
	Headers: map[string]string{
		"Authorization": "Bearer token",
		"Content-Type": "application/json",
	},
}

查询参数

go
&fetch.Config{
	Query: map[string]string{
		"page": "1",
		"limit": "10",
	},
}

请求体

go
&fetch.Config{
	Body: map[string]interface{}{
		"name": "John",
		"age": 30,
	},
}

超时

go
&fetch.Config{
	Timeout: 5 * time.Second,
}

代理

go
&fetch.Config{
	Proxy: "http://127.0.0.1:8080",
}

认证

go
// Basic 认证
&fetch.Config{
	BasicAuth: &fetch.BasicAuth{
		Username: "user",
		Password: "pass",
	},
}

// 或通过请求头使用 Bearer Token
&fetch.Config{
	Headers: map[string]string{
		"Authorization": "Bearer token",
	},
}

TLS 配置

go
&fetch.Config{
	TLSCaCertFile: "/path/to/ca.crt",
	TLSInsecureSkipVerify: false,
}

Unix 域套接字

go
&fetch.Config{
	UnixDomainSocket: "/var/run/docker.sock",
}

使用 Fetch 实例

您也可以配置一个 Fetch 实例并重复使用:

go
f := fetch.New()
f.SetBaseURL("https://api.example.com")
f.SetTimeout(10 * time.Second)
f.SetHeader("Authorization", "Bearer token")

response, err := f.Get("/users").Execute()