gpt4 book ai didi

gorequest 包 : check specifically for timeout

转载 作者:数据小太阳 更新时间:2023-10-29 03:40:47 27 4
gpt4 key购买 nike

我正在使用以下包发出出站 http 请求 https://github.com/parnurzeal/gorequest

例如,我正在发出如下所示的 GET 请求 res, body, errs = goReq.Get(url).End()

我的问题是如何判断请求是否超时。

最佳答案

由于超时方法sets the dealines for dial, read, and write , 你可以使用 os.IsTimeout (net 和 net/url 包中的所有错误类型都实现了 Timeout() bool)。 gorequest 不支持上下文,所以 context.Canceled不必考虑:

package main

import (
"log"
"net/http"
"net/http/httptest"
"time"

"github.com/parnurzeal/gorequest"
)

func main() {
s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
time.Sleep(time.Second)
}))

request := gorequest.New()
_, _, errs := request.Get(s.URL).Timeout(500 * time.Millisecond).End()

for _, err := range errs {
if os.IsTimeout(err) {
log.Fatal("timeout")
}
}
}

关于gorequest 包 : check specifically for timeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52379379/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com