我想在golang中編寫一個web服務器來處理地理編碼請求。其中一些請求花費的時間超過一分鐘。在這種情況下,服務器似乎正在向客戶端返回一個空的主體,儘管處理程序一直運行。我試過下面的代碼無濟於事。我錯過了什麼嗎?這可能是pat的問題嗎?Golang HTTP服務器超時
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()
客戶端是紅寶石。我不認爲這是問題,因爲我看到類似的行爲,如果我使用捲曲。
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))
檢查您的客戶端是否超時。 – thwd
在請求完成處理之前是否返回空體?或者處理完成,然後返回空體?這應該有希望表明超時是在服務器還是客戶端。 – Intermernet
@Tom:如果我使用curl作爲客戶端,我遇到同樣的問題。不過我已經附上了ruby客戶端以供參考。 – MattyB