从DB golang

时间:2016-12-24 22:53:06

标签: go http-status-code-304

我正在尝试实现API,在创建会话的第一步中,以及在使用get请求查询此sesson之后。有时我会得到 304 Not Modified的响应代码 - 结果自上次调查以来没有被修改,对我来说似乎都是随机的。在这种情况下,我无法将响应保存到Golang结构中。这非常令人沮丧。你有什么见解可能是什么问题吗?谢谢!

client := &http.Client{Timeout: 10 * time.Second}
req, err := http.NewRequest("GET", url, nil)
q := req.URL.Query()
q.Add("apiKey", apiKey)
q.Add("sortorder", "asc")
req.URL.RawQuery = q.Encode()

if err != nil {
    panic(err)
}
req.Header.Set("ACCEPT", "application/json")
resp, err := client.Do(req)
if err != nil {
    panic(err)
}

defer resp.Body.Close()
if resp.StatusCode == 200{
    if err != nil {
        panic(err)
    }
}else{
    fmt.Println(resp.StatusCode)
}
data, err := ioutil.ReadAll(resp.Body)

return []byte(data)

2 个答案:

答案 0 :(得分:1)

是否也在实施服务器?或者只是一个客户?你控制服务器了吗?如果你不这样做,那么你可能不得不处理304未修改的内容。如果服务器告诉您资源没有被修改,那可能会很好,因为您可以将某些处理短路。

答案 1 :(得分:0)

好的,问题已经通过等待1秒并再次轮询来解决。