gpt4 book ai didi

ssl - 获取网络/http : TLS handshake timeout golang

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

需要你的帮助

package main

import (
"log"
"net/http"
)

func main() {
client := &http.Client{}
_, err := client.Get("https://www.marathonbet.com/en/")
if err != nil {
log.Fatalf("%s\n", err)
}
}

这总是返回:获取 https://www.marathonbet.com/en/: net/http: TLS 握手超时退出状态 1我正在尝试: it并使用 this库并做 it但对我没有任何作用..所以,请帮助我。

更新:在带有请求的 Python 2.7 中,这有效:

s = Session()
r = s.get('https://www.marathonbet.com/en/, verify=False)

但我需要用 go(

更新:修复:只需将 https://www.marathonbet.com/en/ 替换为 https://87.117.250.213/en/ 并添加 skip verify。感谢大家的帮助。

最佳答案

这是对正在发生的事情的更详细解释。当您调用域时,您的 HTTP 客户端会调用 DNS 服务器。 DNS 服务器使用目标服务器的 IP 进行响应。此时一切正常。

如果是 HTTPS 连接,则它会启动 TLS 握手。这是它的工作原理。

TLS handshake

这就是您遇到问题的地方。请求已发送,但服务器没有正确回答(或根本没有回答)。可能是服务器等多种因素造成的:

  • 无法访问
  • 需要更多时间回复
  • 可以隐藏在一些拒绝连接的防火墙/代理后面
  • 阻止来自您的 IP/位置的所有请求
  • 等等

通过提供 skip verify 选项并提供显式 IP 地址,您可以跳过我上面描述的所有内容。这意味着:

  • 如果服务器的 IP 更改,您的代码将停止工作
  • 如果有人执行 man-in-the-middle attach你不会发现的。

如果不进行更深入的调查,很难找出根本原因。如果您想了解发生了什么,请使用 httptrace正如@Flowchartsman 所建议的那样

关于ssl - 获取网络/http : TLS handshake timeout golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33578338/

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