resp.Body.Close() 

functions call decodeBody() have this line"defer resp.Body.Close()",so resp.Body.Close() may exec twice.