【问题标题】:Curl + Invoke RestMethod卷曲 + 调用 RestMethod
【发布时间】:2019-07-28 20:50:29
【问题描述】:

所以我正在开发一个区块链项目,并且代码本身已被修复到不会给我错误的地方。它告诉我“在 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:无法绑定参数“标头”。无法转换 “System.String”类型的“Content-Type: application/json”值 输入

“System.Collections.IDictionary”。在行:1 字符:47 + ... "localhost:5000/txion" \ -H "Content-Type: application/json" \ -d '{ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

【问题讨论】:

    标签: windows powershell curl blockchain pycurl


    【解决方案1】:

    您可以尝试以下方法:

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

    或者:

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

    【讨论】:

    • 第一种方法给了我一个“请求的 url 不允许的方法”,但也在运行我的代码的 python shell 上给了我这个错误。我将仔细检查原始代码,然后再试一次。谢谢 127.0.0.1 - - [07/Mar/2019 11:33:03] "GET /txion?amount=3&from=akjflw&to=fjlakdj HTTP/1.1" 405 - -
    • 您要发帖吗?如果是这样,您将需要添加-Method POST
    • 知道了,谢谢!它有效,现在我的面试会很顺利。我很感激!
    【解决方案2】:

    Invoke-RestMethod 让这一切变得简单。响应会自动加载到您的 System.Management.Automation.PSCustomObject 中。

    Invoke-RestMethod localhost:5000/txion -Method Post -Body @{"from": "akjflw"; "to":"fjlakdj"; "amount": 3; }
    

    【讨论】:

    • Invoke-RestMethod 为我工作,用于发布从文本文件加载的 xml,并进行了一些调整
    猜你喜欢
    • 1970-01-01
    • 2011-04-14
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    相关资源
    最近更新 更多