gpt4 book ai didi

http - 使用golang终止来自IP层的http请求

转载 作者:IT王子 更新时间:2023-10-29 01:38:11 26 4
gpt4 key购买 nike

我正在使用 golang 向服务器发出 http post 请求。假设服务器当前处于关闭状态(指运行服务器的机器处于关闭状态),则请求停留在 IP 层。所以我的程序执行无法进一步进行。它无法继续到应用程序层。那么在golang中有什么办法可以阻止这种情况。我正在使用以下代码。

req, err := http.NewRequest("POST", url, bytes.NewReader(b))
if err != nil {
return errors.Wrap(err, "new request error")
}
resp, err := http.DefaultClient.Do(req)
if err != nil {
return errors.Wrap(err, "http request error")
}
defer resp.Body.Close()

有什么东西可以添加到这里,如果它没有从 IP 层找到任何东西,就终止请求。

最佳答案

默认的http Client没有超时。您可以自己创建一个显式的 http.Client 并设置超时:

var cl = &http.Client{
Timeout: time.Second * 10,
}

resp, err := cl.Do(req)

if err != nil {
// err will be set on timeout
return errors.Wrap(err, "http request error")
}
defer resp.Body.Close()

如果服务器在请求过程中不再响应,您可以处理超时。

关于http - 使用golang终止来自IP层的http请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50694559/

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