一尘不染

Google App Engine Go HTTP请求到慢速页面

go

我想使用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秒?


阅读 231

收藏
2020-07-02

共1个答案

一尘不染

如果可能的话,我建议您使用Tasks Queue
API
在主请求处理程序之外进行urlfetch

构造urlfetch.Transport时,您应该能够覆盖默认的截止日期,如下所示:

t := urlfetch.Transport{Context:c, DeadlineSeconds: 5.0}
client := http.Client{Transport: &t}
2020-07-02