added `check_first` option to `Session._request`, used for upload