Use defer on reqLock.Unlock() to guarantee it gets unlocked on error
process unexpectedEOF on response as empty response