Google app engine 发布http请求google应用程序引擎

Google app engine 发布http请求google应用程序引擎,google-app-engine,go,Google App Engine,Go,我正在我的应用程序中编写代码,给定一个我希望GAE返回GET请求的响应主体的URL,我似乎找不到一个简单的方法来实现这一点。我已经阅读了他们的文档,这是我目前拥有的代码 func Extract(url string) ([]string, error) { r, _ := http.NewRequest("", url, nil) ctx := appengine.NewContext(r) client := urlfetch.Client(ctx) resp

我正在我的应用程序中编写代码,给定一个我希望GAE返回GET请求的响应主体的URL,我似乎找不到一个简单的方法来实现这一点。我已经阅读了他们的文档,这是我目前拥有的代码

func Extract(url string) ([]string, error) {
    r, _ := http.NewRequest("", url, nil)
    ctx := appengine.NewContext(r)
    client := urlfetch.Client(ctx)
    resp, err := client.Do(r)
...
}
但是每次我运行这段代码时,我都会得到以下错误

NewContext passed an unknown http.Request

我想我该如何使
http.Request
为人所知呢?

需要a的AppEngine服务只能从处理程序中使用,因为创建
上下文需要一个值。但此
请求必须是(对您的应用程序的)传入请求,而不是您要发出的传出请求

因此,您需要一个具有
http.Request
参数的处理程序,您必须将该参数传递给上下文创建:

func MyHandler(w http.ResponseWriter, r *http.Request) {
    ctx := appengine.NewContext(r)
    r2, _ := http.NewRequest("", url, nil)
    client := urlfetch.Client(ctx)
    resp, err := client.Do(r2)
    // ...
}

请参阅相关问题:

需要值的AppEngine服务只能从处理程序中使用,因为创建
上下文需要值。但此
请求必须是(对您的应用程序的)传入请求,而不是您要发出的传出请求

因此,您需要一个具有
http.Request
参数的处理程序,您必须将该参数传递给上下文创建:

func MyHandler(w http.ResponseWriter, r *http.Request) {
    ctx := appengine.NewContext(r)
    r2, _ := http.NewRequest("", url, nil)
    client := urlfetch.Client(ctx)
    resp, err := client.Do(r2)
    // ...
}

请参阅相关问题:

是否有办法发出请求?是否有办法发出请求?