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.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 ,.-UseDefaultCredentials to pass in the Windows authentication userFor 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 -Uri "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?;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.