gpt4 book ai didi

json - 为每个 GET 请求创建一个新的 JSON 文件

转载 作者:IT王子 更新时间:2023-10-29 02:09:49 26 4
gpt4 key购买 nike

背景故事:我正在使用 GET 方法检索详细信息。我设法让程序将服务器给出的输出解析为名为“output.json”的 JSON 文件。

问题:每次我发出不同的请求时,输出都会覆盖 output.json 文件中的所有先前内容。是否可以为每个请求制作一个新的 JSON 文件?我是 GoLang 的新手,任何帮助都会非常有用:)

注意:我只展示了用于调用 API 的方法,如果需要,我将展示我的其余代码。

这是我使用的方法:

func render(endpoint string, w http.ResponseWriter, r *http.Request) {
// check if request has cookie set
if cookie, err := r.Cookie(COOKIE_NAME); err != nil {
// else redirect to OAuth Authorization EP
redirectToOAuth(w, r, endpoint)
} else {
session := cookie.Value
accessToken := sessions[session]

// pipe api endpoint
ep := fmt.Sprintf("%s/%s", fidorConfig.FidorApiUrl, endpoint)
if api_req, err := http.NewRequest("GET", ep, nil); err != nil {
w.WriteHeader(500)
w.Write([]byte(err.Error()))
} else {
api_req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", accessToken))
api_req.Header.Set("Accept", "application/vnd.fidor.de; version=1,text/json")

client := &http.Client{}
if api_resp, err := client.Do(api_req); err != nil {
w.WriteHeader(500)
w.Write([]byte(err.Error()))
} else {
if api_resp.StatusCode == 401 { // token probably expired
handleLogout(w, r, endpoint)
return
}

w.Header().Set("Content-Type", "application/json")
w.WriteHeader(api_resp.StatusCode)


defer api_resp.Body.Close()
out, err := os.Create("output.json")
if err != nil {
// panic?
}
defer out.Close()
io.Copy(out, api_resp.Body)

}
}
}
}

最佳答案

如果你想在你的文件名中附加时间(就像@Florian 建议的那样),你可以在创建文件时做这样的事情:

out, err := os.Create(fmt.Sprintf("output-%d.json", time.Now().Unix()))
// filename => output-1257894000.json

此处 time.Now().Unix() 返回自 1970 年 1 月 1 日 UTC(又名 Unix 时间)以来经过的秒数。所以每次都会创建不同的json文件。

有关时间的更多信息:https://golang.org/pkg/time/#Time.Unix

关于json - 为每个 GET 请求创建一个新的 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50461129/

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