0

我尝试了多种使用 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 有一个拼写错误,修复它后,它起作用了!带来不便敬请谅解。

4

1 回答 1

0

目前尚不清楚您使用的是什么端点,但是,这是文档中的一个示例

curl "https://instance.service-now.com/api/now/attachment/upload" \
--request POST \
--header "Accept:application/json"
--user 'admin':'admin'"\
--header "Content-Type:multipart/form-data"
-F 'table_name=incident' -F 'table_sys_id=d71f7935c0a8016700802b64c67c11c6' -F 'encryption_context=undefined'-F 'uploadFile=@ location of the file on file system'
于 2018-07-13T13:30:32.170 回答