我正在研究一下我可以通过REST调用修改url上的文件和文件夹的powershell脚本,所以使用Invoke-RestMethod,但我想这适用于任何调用webrequests或者通常试图让它工作相当于curl“username:password @ host:port / path”在linux中的作用。
我的问题是我需要像curl一样传递凭据。当我使用-Credential传递凭据时,它可以正常工作 问题是当我想在脚本中执行进一步的操作或者在第二次使用它之后,我不再被提示,因此我的脚本就会挂起。
代码的相关部分:
$securepassword = ConvertTo-SecureString "mypass" -AsPlainText -Force
$credentials = New-Object System.Management.Automation.PSCredential("myuser",$securepassword)
$URI = "http://myhost:myport/mypath/"
Invoke-RestMethod -Uri $URI -Credential $credentials -Method DELETE
这在第一次运行时完全正常,但第二次它会挂起,我猜它是因为凭证提示没有来,因为它存储了一段时间。但是我可以在没有任何问题的情况下使用curl进行多次调用。
答案 0 :(得分:0)
对我来说,听起来你需要在后续请求中传递某种授权项。在我构建的少数REST应用程序中,它通常是这样的:
userID
来获取API密钥,然后在后续请求中,它在标头'x-api-key' => 'theActualKeyValue'
中发送密钥/值对。也许你可以做类似的事情。