背景-
我正在将此函数移动到 main()
,以便我的其余代码可以访问响应数据。
例子-
func RequestTopMovies(w http.ResponseWriter, r *http.Request) {
res, err := http.Get(url)
if err != nil {
panic(err)
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
panic(err)
}
var p Payload
err = json.Unmarshal(body, &p)
if err != nil {
panic(err)
}
for i := 0; i < len(p.Results); i++ {
fmt.Println(p.Results[i].Overview)
}
}
问题 -
如何将响应数据设置为可供我代码中的其他位置访问?
最佳答案
RequestTopMovies 是一种 http.Handler
类型,它将作为处理函数(也称为 Controller )自动调用。
要访问接收到的数据,要么使用上下文之类的东西(检查 gorilla /上下文),要么只创建一个 slice 或映射来保存数据结构,以便您可以从代码中的其他地方访问它,即
var Temp = map[string]Payload{}
一旦你解码了数据,就把它存储起来</p>
Temp[key] = p
然后像另一个处理程序一样从其他地方获取数据
func SomeHandler(rw http.ResponseWriter, *http.Request) {
p := Temp[key]
// ...
}
关于json - 将 API 请求函数传递给另一个函数 GoLang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35970960/