Я написал код, который пытается получить значение из одного Rest API и отправить его другому. У меня код сохраняется в файле .ps1. Если я отредактирую его и запустим (или просто скопирую и вставив его в пустой терминал PowerShell), он сделает то, что я ожидаю. Однако, когда я пытаюсь запустить тот же самый файл .ps1, я получаю сообщение об ошибке во втором Invoke-RestMethod.Запуск кода PowerShell в powershell работает, исполняемый как .ps1 не
Не понимаю, почему у меня получается другой результат, и сообщение об ошибке не дает мне много подсказок.
Что я делаю неправильно?
код я использую (с модифицированным ключом API):
$encoded = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($APIkey+":"))
$headers = @{"Content-Type" = "application/json"; "AUTHORIZATION" = "Basic $encoded"}
$APIkey = "123456789"
$metricId = "123"
$r = Invoke-RestMethod -Uri https://coinbase.com/api/v1/currencies/exchange_rates
$metric = [PSCustomObject]@{
value = [Math]::Round($r.btc_to_eur, 2)
}
$baseuri = "https://api.numerousapp.com/v1/metrics/$metricId/events"
$data = ConvertTo-Json $metric
Invoke-RestMethod -Uri $baseuri -Body $data -Headers $headers -Method Post
И сообщение об ошибке я получаю при запуске файла .PS1 является:
Invoke-RestMethod : : At C:\NumerousBitcoinEur.ps1:13 char:1 + Invoke-RestMethod -Uri $baseuri -Body $data -Headers $headers -Method Post + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
Я используя PowerShell 4.0
Хорошо, я получаю ту же ошибку, что и при приставке в консоли или при запуске из ISE. Поэтому я не думаю, что файл ps1 как-то связан с ним. – bouvierr