douli2876 2018-09-18 05:15
浏览 61
已采纳

gorequest软件包:专门检查超时

I am using the below package to make a outbound http request https://github.com/parnurzeal/gorequest

For eg I am making a GET request like below res, body, errs = goReq.Get(url).End()

My question is how to figure out if there is timeout in the request.

  • 写回答

1条回答 默认 最新

  • douliang2935 2018-09-18 08:28
    关注

    Since the Timeout method sets the dealines for dial, read, and write, you can use os.IsTimeout (all error types in the net and net/url packages implement Timeout() bool). Contexts are not supported by gorequest, so context.Canceled doesn't have to be considered:

    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")
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?
  • ¥15 关于#vue.js#的问题:修改用户信息功能图片无法回显,数据库中只存了一张图片(相关搜索:字符串)
  • ¥15 texstudio的问题,