使用 Invoke-WebRequest 上传文件
Upload a file using Invoke-WebRequest
使用 PowerShell 7,我使用 Invoke-RestMethod 成功上传了一个文件:
$Uri = '...(my url)...'
$File = '...(path to my file)...'
$Form = @{
f = Get-Item -Path $File
}
$Result = Invoke-RestMethod -Uri $Uri -Method Post -Form $Form -StatusCodeVariable 'HttpStatus'
我想对 Invoke-WebRequest 做同样的事情;我更喜欢 Invoke-WebRequest 因为它的返回值有一个方便的结构,里面有一个状态和一个内容字段,所以我可以摆脱 $HttpStatus 变量并简单地将结果转换为 JSON with '$Result.Content | ConvertFrom-Json'.
Invoke-WebRequest cmdlet 的文档中有一个上传示例:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-7,示例 6。但是它使用了 Invoke-RestMethod cmdlet。这不是文档中的错字吗?我可以像 Invoke-RestMethod 示例中那样简单地使用 Invoke-WebRequest 吗?
我用 Invoke-WebRequest 成功替换了代码中的 cmdlet:
$Result = Invoke-WebRequest -Uri $Uri -Method Post -Form $Form -SkipHttpErrorCheck
$httpStatus = $Result.StatusCode
if ($httpStatus -eq 200)
{
$j = $Result.Content | ConvertFrom-Json
. . . .
}
FoxDeploy,您的评论很有帮助。谢谢。
使用 PowerShell 7,我使用 Invoke-RestMethod 成功上传了一个文件:
$Uri = '...(my url)...'
$File = '...(path to my file)...'
$Form = @{
f = Get-Item -Path $File
}
$Result = Invoke-RestMethod -Uri $Uri -Method Post -Form $Form -StatusCodeVariable 'HttpStatus'
我想对 Invoke-WebRequest 做同样的事情;我更喜欢 Invoke-WebRequest 因为它的返回值有一个方便的结构,里面有一个状态和一个内容字段,所以我可以摆脱 $HttpStatus 变量并简单地将结果转换为 JSON with '$Result.Content | ConvertFrom-Json'.
Invoke-WebRequest cmdlet 的文档中有一个上传示例:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-7,示例 6。但是它使用了 Invoke-RestMethod cmdlet。这不是文档中的错字吗?我可以像 Invoke-RestMethod 示例中那样简单地使用 Invoke-WebRequest 吗?
我用 Invoke-WebRequest 成功替换了代码中的 cmdlet:
$Result = Invoke-WebRequest -Uri $Uri -Method Post -Form $Form -SkipHttpErrorCheck
$httpStatus = $Result.StatusCode
if ($httpStatus -eq 200)
{
$j = $Result.Content | ConvertFrom-Json
. . . .
}
FoxDeploy,您的评论很有帮助。谢谢。