rest - Invoke-RestMethod converts backslash to slash -
i call rest api passing parameter contains backslash character.
the api expects route api/test/<app_name>/<user_name>
, , example pass domain\login
value user_name
.
i tried powershell:
$uri = [uri]::escapeuristring("http://localhost:5555/api/test/app name/domain\login") # $uri = 'http://localhost:5555/api/test/app%20name/domain%5clogin' invoke-restmethod -method -uri $uri -verbose
the output of invoke-restmethod
-verbose
flag shows powershell is converting backslash slash, , after 404 rest api (which expected since route not match):
verbose: http://localhost:5555/api/test/app name/domain/login 0-byte payload invoke-restmethod : 404 not found
how can avoid behavior , use path encoded backslash?
here output of $psversiontable
variable:
> $psversiontable name value ---- ----- psversion 5.1.14393.953 psedition desktop pscompatibleversions {1.0, 2.0, 3.0, 4.0...} buildversion 10.0.14393.953 clrversion 4.0.30319.42000 wsmanstackversion 3.0 psremotingprotocolversion 2.3 serializationversion 1.1.0.1
what should word: replace /
//
maybe must define regular string , convert it:
$rawuri = 'http://...'
here should use //
instead of /
.
then use code , replace text new variable.
Comments
Post a Comment