Golang http client 撤销 request

孔鸿云
2023-12-01

利用上下文来取消 当前发送出去的请求


// tsetStudy1 project main.go
package main

import (
	"context"
	"fmt"
	"net/http"
)

func main() {
	url := "http://localhost:8080"
	client := &http.Client{}
	reqest, err := http.NewRequest("GET", url, nil) // http client get 请求
	if err != nil {
		fmt.Println(err)
		return
	}
	ctx, cancel := context.WithCancel(context.Background()) // 获取一个上下文
	reqest = reqest.WithContext(ctx)                        // 设置当前请求的上下文
	go func() {                                             // 一定条件 比如超时等等
		cancel() // 撤销当前请求
	}()
	response, err := client.Do(reqest)
	if err != nil {
		fmt.Println("Fatal error ", err.Error()) // 取消反馈
		return
	}
	defer response.Body.Close()
}


*** 相关golang的上下文 我也是刚刚开始接触有些用法上错误的地方请指示,谢谢。

 类似资料: