我尝试了多种使用 PowerShell 通过 Invoke-RestMethod 和 Invoke-WebRequest 将 CSV 文件上传到 ServiceNow 的方法;但是,我碰壁了。当我调用函数时,我收到以下错误:
“Invoke-RestMethod:远程服务器返回错误:(405)方法不允许。”
“Invoke-WebRequest:远程服务器返回错误:(405)方法不允许。”
我试过下面的代码:
尝试 1)
$Headers = @{'Auth_token'=$envCred};
$FileContent = [IO.File]::ReadAllText('C:\temp\test.csv');
$Fields = @{'uploadFile'=$FileContent};
Invoke-WebRequest -Uri $Uri -ContentType 'multipart/form-data' -Method Post -Headers $Headers -Body $Fields;
尝试 2)
Invoke-RestMethod -Method Post -Uri $uri -Credential $envCred -ContentType 'multipart/form-data -InFile "C:\temp\test.csv" '
我知道 API 正在工作,因为在我调用之后:
Invoke-RestMethod -Method 'get' -Uri $uri -Credential $snCred -body $body
它返回正确的信息。
我还尝试了以下 [-Method Patch]:"Invoke-RestMethod -Uri $uri -Credential $snCred -Method Patch -ContentType 'text/csv' -InFile "C:\temp\test.csv"
- 还尝试了-ContentType 'multipart/form-data
' - 我收到以下错误:“Invoke-RestMethod:远程服务器返回错误:(415)不支持的媒体类型。”
是否有另一种方法或在 PowerShell 中使用 or 上传 CSVInvoke-RestMethod
文件Invoke-WebRequest
?
解决方案:我意识到我的 URI 有一个拼写错误,修复它后,它起作用了!带来不便敬请谅解。