登录
首页 >  Golang >  Go问答

Google App Engine 向慢速页面发出 HTTP 请求

来源:Golang技术栈

时间:2023-03-05 13:59:21 342浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《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
    }
    ...}

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

API error 1 (urlfetch: INVALID_URL): ApplicationError: 5 timed out

在对其进行了一番研究后,我发现了一些对Transport 类的引用,该类允许等待 HTTP 请求长达 60 秒,但我找不到任何关于如何使其工作的描述或示例。

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

正确答案

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

在构建 urlfetch.Transport 时,您应该能够像这样覆盖默认截止日期:

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

以上就是《Google App Engine 向慢速页面发出 HTTP 请求》的详细内容,更多关于golang的资料请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>