我会写一些辅助函数来做到这一点:
// getJSON fetches the contents of the given URL// and depres it as JSON into the given result,// which should be a pointer to the expected data.func getJSON(url string, result interface{}) error { resp, err := http.Get(url) if err != nil { return fmt.Errorf("cannot fetch URL %q: %v", url, err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { return fmt.Errorf("unexpected http GET status: %s", resp.Status) } // We could check the resulting content type // here if desired. err := json.NewDeprer(resp.Body).Depre(result) if err != nil { return fmt.Errorf("cannot depre JSON: %v", err) } return nil}
可以在这里找到完整的工作示例:http :
//play.golang.org/p/b1WJb7MbQV
- 请注意,检查状态码和Get错误非常重要,并且必须明确关闭响应正文(请参见此处的文档:http
- //golang.org/pkg/net/http/#Get)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)