I'm trying to perform a POST using Invoke-WebRequest using a Powershell script. I'm getting a Bad Request (400) error which from my understanding means there is something wrong with the way I'm doing the POST. Here is my Powershell script:
#Create a credential variable for account$cred = Get-Credential$postParams = @{files='.\Hello.txt'}try { Invoke-WebRequest -Credential $cred -Uri https://api.bitbucket.org/2.0/repositories/myBitbucketUsername/myRepoName/downloads -ContentType "multipart/form-data" -Method POST -Body $postParams}catch {echo '### Inside catch ###' $ErrorMessage = $_.Exception.Message echo '## ErrorMessage ##' $ErrorMessage $FailedItem = $_.Exception.ItemName echo '## FailedItem ##' $FailedItem $result = $_.Exception.Response.GetResponseStream() echo '## result2 ##' $result $reader = New-Object System.IO.StreamReader($result) echo '## reader ##' $reader $responseBody = $reader.ReadToEnd(); echo '## responseBody ##' $responseBody}pause
Here is the info I get from the catch block when executing the script:
### Inside catch ### ## ErrorMessage ## The remote server returned an error: (400) Bad Request. ## FailedItem ## ## result2 ## CanTimeout : True ReadTimeout : -1 WriteTimeout : -1 CanRead : True CanSeek : True CanWrite : True Capacity : 256 Length : 26 Position : 26 ## reader ## CurrentEncoding : System.Text.UTF8EncodingBaseStream : System.Net.SyncMemoryStream EndOfStream : True ## responseBody ##
I'm unsure of what I'm doing wrong. The file I am trying to POST (Hello.txt), is located on the Desktop which also contains the Powershell script.