Curl + Invoke RestMethod

Итак, я работаю над проектом блокчейна, и сам код исправлен так, что он не дает мне ошибок. Он говорит мне "Работает на xyz"

Тем не менее, когда я перехожу в PowerShell и запускаю Invoke-WebRequest, как уже упоминалось ранее (вместо curl), я получаю сообщение об ошибке:

PS C:\Users\sebt1> Invoke-WebRequest "localhost:5000/txion" \ -H "Content-Type: 
    application/json" \ -d '{"from": "akjflw", "to":"fjlakdj", "amount": 3}'

Invoke-WebRequest: невозможно привязать параметр «Заголовки». Невозможно преобразовать значение Content-Type: application / json типа System.String в тип

"System.Collections.IDictionary". В строке: 1 символ: 47 + ... "localhost: 5000 / txion" \ -H "Content-Type: application / json" \ -d '{... + ~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException + FullyQualifiedErrorId: CannotConvertArgumentNoMessage, Microsoft.PowerShell.Commands.InvokemWebRequest


person Sebt1890    schedule 07.03.2019    source источник


Ответы (2)


Вместо этого вы можете попробовать следующее:

Invoke-WebRequest "http://localhost:5000/txion" -Method POST -Headers @{"Content-Type" = "application/json"} -body @{"from" = "akjflw"; "to" = "fjlakdj"; "amount" = 3}

Or:

Invoke-WebRequest "http://localhost:5000/txion" -Method POST -Content-Type "application/json" -body @{"from" = "akjflw"; "to" = "fjlakdj"; "amount" = 3}
person AdminOfThings    schedule 07.03.2019
comment
Первый метод дал мне метод, запрещенный для запрошенного URL-адреса, но также дал мне эту ошибку в оболочке python, в которой выполняется мой код. Я собираюсь дважды проверить исходный код и повторить попытку. Спасибо 127.0.0.1 - - [07 / мар / 2019 11:33:03] GET / txion? Amount = 3 & from = akjflw & to = fjlakdj HTTP / 1.1 405 - - - person Sebt1890; 07.03.2019
comment
Вы пытаетесь опубликовать? Если это так, вам нужно будет добавить -Method POST. - person AdminOfThings; 07.03.2019
comment
Понял, спасибо! Это работает, и теперь мое собеседование будет твердым. Я ценю это! - person Sebt1890; 07.03.2019

Invoke-RestMethod упрощает это. Ответ автоматически загружается в System.Management.Automation.PSCustomObject для вас.

Invoke-RestMethod localhost:5000/txion -Method Post -Body @{"from": "akjflw"; "to":"fjlakdj"; "amount": 3; }
person Matt R    schedule 07.03.2019
comment
Invoke-RestMethod работал у меня для публикации xml, загруженного из текстового файла, с некоторыми настройками - person Harfel Jaquez; 09.11.2020