I'm attempting to POST to a uri, and send the parameter username=me
Invoke-WebRequest -Uri http://example.com/foobar -Method POST
How do I pass the parameters using the method POST?
I'm attempting to POST to a uri, and send the parameter username=me
Invoke-WebRequest -Uri http://example.com/foobar -Method POST
How do I pass the parameters using the method POST?
Put your parameters in a hash table and pass them like this:
$postParams = @{username='me';moredata='qwerty'}
Invoke-WebRequest -Uri http://example.com/foobar -Method POST -Body $postParams
non-json
hash-table
solution first before going to the json version, see @rob. –
Authorized Invoke-WebRequest -Uri http://example.com/foobar -Method POST -Body @{username='me';moredata='qwerty'}
(possibly with $ProgressPreference = 'SilentlyContinue'
). Pay attention that in comparison to curl
you have no quotation marks "
for the variable names and =
instead of :
and ;
instead of ,
. –
Kaz -UseDefaultCredentials
to pass in the Windows authentication user –
Grandma For some picky web services, the request needs to have the content type set to JSON and the body to be a JSON string. For example:
Invoke-WebRequest -UseBasicParsing http://example.com/service -ContentType "application/json" -Method POST -Body "{ 'ItemID':3661515, 'Name':'test'}"
or the equivalent for XML, etc.
This just works:
$body = @{
"UserSessionId"="12345678"
"OptionalEmail"="[email protected]"
} | ConvertTo-Json
$header = @{
"Accept"="application/json"
"connectapitoken"="97fe6ab5b1a640909551e36a071ce9ed"
"Content-Type"="application/json"
}
Invoke-RestMethod -Uri "http://MyServer/WSVistaWebClient/RESTService.svc/member/search" -Method 'Post' -Body $body -Headers $header | ConvertTo-HTML
connectapitoken
? Or is this optional? –
Kaz ;
–
Sacrilege Single command without ps variables when using JSON
as body {lastName:"doe"}
for POST api call:
Invoke-WebRequest -Headers @{"Authorization" = "Bearer N-1234ulmMGhsDsCAEAzmo1tChSsq323sIkk4Zq9"} `
-Method POST `
-Body (@{"lastName"="doe";}|ConvertTo-Json) `
-Uri https://api.dummy.com/getUsers `
-ContentType application/json
See more: Power up your PowerShell
=
instead of :
. You're doing it correct in the code block, but maybe not above. ;
instead of ,
is correct and the quotation marks "
for the variable names are alright and just not wanted by PowerShell. –
Kaz © 2022 - 2024 — McMap. All rights reserved.