gpt4 book ai didi

go - 使用GO导航时如何使用Context?

转载 作者:行者123 更新时间:2023-12-01 22:12:55 25 4
gpt4 key购买 nike

我正在使用以下代码来从Google Cloud获得指导:

import (
"google.golang.org/appengine"
"google.golang.org/appengine/urlfetch"
"fmt"
"io/ioutil"
"net/http"
)

const directionAPIKey = "APIKey"
const directionURL = "https://maps.googleapis.com/maps/api/directions/json?origin=%s&destination=%s&mode=%s&key=%s"

func main() {
http.HandleFunc("/", handler)
}

func handler(w http.ResponseWriter, r *http.Request) {
ctx := appengine.NewContext(r)
direction, err := fetchDirection(ctx, r.FormValue("origin"), r.FormValue("destination"), r.FormValue("mode"))
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Header().Add("Content-Type", "application/json; charset=utf-8")
w.Write(direction)
}

func fetchDirection(ctx appengine.Context, origin string, destination string, mode string) ([]byte, error) {
client := urlfetch.Client(ctx)
resp, err := client.Get(fmt.Sprintf(directionURL, origin, destination, mode, directionAPIKey))
if err != nil {
return nil, err
}
defer resp.Body.Close()
return ioutil.ReadAll(resp.Body)
}

但我得到一个错误:

未定义:appengine.Context

尝试部署应用程序时。我试图改变的是:
ctx := appengine.NewContext(r)

进入
ctx := r.Context()


func fetchDirection(ctx appengine.Context, origin string...)

进入
func fetchDirection(ctx Context, origin string...)

但是我得到:
undefined: Context

我完全迷路了。我是Go和GCP的新手,所以请耐心等待。谢谢

最佳答案

如果您检查godoc for urlfetch,您会看到它链接到where the Context type is defined。这反过来又告诉您“从Go 1.7开始,该程序包在标准库中的名称上下文为https://golang.org/pkg/context可用。”

因此添加一个导入:

import "context"

并将其称为:
func fetchDirection(ctx context.Context, origin string...)

关于go - 使用GO导航时如何使用Context?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62477169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com