我正在尝试用 golang 编写一个 Web 服务器来处理地理编码请求。其中一些请求的处理时间超过一分钟。在这种情况下,尽管处理程序继续运行,但服务器似乎正在向客户端返回一个空主体。我试过下面的代码无济于事。我错过了什么吗?这可能是pat的问题吗?


r := pat.New()


r.Get("/geocode", GeocodeHandler)

r.Get("/status", StatusHandler)

r.Get("/", InvalidHandler)


s := &http.Server{

    Addr: ":"+port,

    Handler: r,

    ReadTimeout: 10 * time.Minute,

    WriteTimeout: 10 * time.Minute,

    MaxHeaderBytes: 0,

}


s.ListenAndServe()

客户是红宝石。不过,我认为这不是问题所在,因为如果我使用 curl,我会看到类似的行为。


uri = URI(URI.escape("http://blah.com/geocode?address=#{address}"))

http = Net::HTTP.new(uri.host, uri.port)

http.read_timeout = 10 * 60

response = http.request(Net::HTTP::Get.new(uri.request_uri))