Google app engine 发布http请求google应用程序引擎
我正在我的应用程序中编写代码,给定一个我希望GAE返回GET请求的响应主体的URL,我似乎找不到一个简单的方法来实现这一点。我已经阅读了他们的文档,这是我目前拥有的代码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
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)
// ...
}
请参阅相关问题:是否有办法发出请求?是否有办法发出请求?