Google App Engine将HTTP请求发送到慢速页面

The*_*chu 2 google-app-engine 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
    }
    ...}
Run Code Online (Sandbox Code Playgroud)

在调用我的网站后,我收到了这样的错误:

API error 1 (urlfetch: INVALID_URL): ApplicationError: 5 timed out
Run Code Online (Sandbox Code Playgroud)

在查看bi之后,我发现了一些对Transport类的引用,允许等待最多60秒的 HTTP请求,但是我找不到任何关于如何使其工作的描述或示例.

如何在GAE Go中发出一个截止日期超过5秒的HTTP请求?

pro*_*ppy 5

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

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

t := urlfetch.Transport{Context:c, DeadlineSeconds: 5.0}
client := http.Client{Transport: &t}
Run Code Online (Sandbox Code Playgroud)