Я пытался (и терпел неудачу в течение нескольких часов) преобразовать этот сценарий cURL в PowerShell:
curl -X POST \
https://example.net \
-H 'Authorization: Bearer 1234567890' \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-d '{
"data": {
"MID": 33,
"DID": "66666666",
"CID": 10002,
"status": "ACTIVE",
"HID": "11"
}
}'
Мой сценарий PowerShell выглядит следующим образом - я подозреваю, что это как-то связано с таблицей двойного хеширования.я создал в $ Body, но я действительно в растерянности.:
.. скрипт для простоты
$Body = @{
'data'= @{
'MID'= 33;
'DID'= "66666666";
'CID'=10002;
'status'="ACTIVE";
'HID'= "11"
}
}
$CurlArgument = '-X', 'POST',
'https://example.net',
'-H', 'Authorization: Bearer 1234567890',
'-H', 'Content-Type: application/json',
'-d',
$Body
$CURLEXE = 'C:\Windows\System32\curl.exe'
& $CURLEXE @CurlArgument
При выполнении я получаю следующее сообщение об ошибке:
..."message":"Access not allowed","details":{"5011":"A JSONObject text must begin with '{' at 1 [character 2 line 1]"}}]}
Я экспериментировал с добавлением после $ Body:
| ConvertTo-Json
, но тогда я получаю такую ошибку:
Unexpected character ('d' (code 100)): was expecting double-quote to start field name
Моя переменная $ CurlArgument выглядит следующим образом (которая выглядит кактак же, как первый сценарий cURL):
-X
POST
https://example.net
-H
Authorization: Bearer 1234567890
-H
Content-Type: application/json
-d
{
"data": {
"CID": 10002,
"MID": 33,
"HID": "11",
"DID": "66666666",
"status": "ACTIVE"
}
}
Как всегда, помощь будет принята с благодарностью.