我想使用Google App Engine在转到响应缓慢的网站中发出HTTP请求。我的代码是:
func request(w http.ResponseWriter, r *http.Request) { c:=appengine.NewContext(r) client := urlfetch.Client(c) resp, err := client.Get("http://www.example.com") if err != nil { log.Print("err %s", err.String()) return } ...}
致电我的网站后,我得到了这样的错误:
API error 1 (urlfetch: INVALID_URL): ApplicationError: 5 timed out
在仔细研究了Bi之后,我发现了一些对Transport类的引用,该类允许等待HTTP请求长达60秒,但是我找不到任何描述或示例来说明如何实现这一点。
如何在GAE Go中发出HTTP请求,该请求的截止时间超过5秒?
如果可能的话,我建议您使用Tasks Queue API在主请求处理程序之外进行urlfetch 。
构造urlfetch.Transport时,您应该能够覆盖默认的截止日期,如下所示:
t := urlfetch.Transport{Context:c, DeadlineSeconds: 5.0} client := http.Client{Transport: &t}