Skip to content

HTTP 方法示例

所有支持的 HTTP 方法的示例:GET、POST、PUT、PATCH、DELETE 和 HEAD。

GET 请求

go
package main

import (
	"fmt"
	"github.com/go-zoox/fetch"
)

func main() {
	response, err := fetch.Get("https://httpbin.zcorky.com/get")
	if err != nil {
		panic(err)
	}

	fmt.Println(response.JSON())
}

带查询参数的 GET

go
response, err := fetch.Get("https://httpbin.zcorky.com/get", &fetch.Config{
	Query: map[string]string{
		"page": "1",
		"limit": "10",
	},
})

POST 请求

go
response, err := fetch.Post("https://httpbin.zcorky.com/post", &fetch.Config{
	Body: map[string]interface{}{
		"name": "John",
		"email": "john@example.com",
	},
})

PUT 请求

go
response, err := fetch.Put("https://httpbin.zcorky.com/put", &fetch.Config{
	Body: map[string]interface{}{
		"id": 1,
		"name": "John",
		"email": "john@example.com",
	},
})

PATCH 请求

go
response, err := fetch.Patch("https://httpbin.zcorky.com/patch", &fetch.Config{
	Body: map[string]interface{}{
		"email": "newemail@example.com",
	},
})

DELETE 请求

go
response, err := fetch.Delete("https://httpbin.zcorky.com/delete", &fetch.Config{
	Body: map[string]interface{}{
		"id": 1,
	},
})

HEAD 请求

go
response, err := fetch.Head("https://httpbin.zcorky.com/get")
if err != nil {
	panic(err)
}

// 检查请求头而不下载响应体
contentType := response.ContentType()
contentLength := response.ContentLength()

使用 Fetch 实例

go
f := fetch.New()
f.SetBaseURL("https://api.example.com")

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

// POST
response, err := f.Post("/users", &fetch.Config{
	Body: map[string]interface{}{
		"name": "John",
	},
}).Execute()

// PUT
response, err := f.Put("/users/1", &fetch.Config{
	Body: map[string]interface{}{
		"name": "Jane",
	},
}).Execute()

// PATCH
response, err := f.Patch("/users/1", &fetch.Config{
	Body: map[string]interface{}{
		"email": "new@example.com",
	},
}).Execute()

// DELETE
response, err := f.Delete("/users/1").Execute()

// HEAD
response, err := f.Head("/users/1").Execute()

方法链式调用

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