2016-12-24 117 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秒鐘,再次輪詢。