实际上并不依赖 request