2016-12-24 112 views
0

我想在此时实现一个API,在创建会话的第一步中,以及在sesson之后使用get请求查询。有时我会得到一个回复​​代码304没有修改 - 结果自上次投票以来没有修改过,它对我来说似乎都是随机的。在这种情况下,我无法将响应保存到Golang结构中。这是非常令人沮丧的。你有什么见解可能是什么问题?谢谢!在从数据库golang查询后收到304代码

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) 

回答

1

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

+0

我只是实现使用第三方服务器的客户端。我的问题是,如果我收到304,我无法访问响应主体。奇怪的是,如果我手动打开响应的url,它会将我带到合适的json结构中。 – donfrigo

0

好的,问题已经解决,等待1秒钟,再次轮询。