Invoke-RestMethod загружает CSV в ServiceNow

Я пробовал много способов загрузки CSV-файла в ServiceNow с помощью PowerShell через Invoke-RestMethod и Invoke-WebRequest; Однако я ударил стену. Когда я вызываю функции, я получаю следующую ошибку:

"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) неподдерживаемый тип носителя".

Есть ли другой способ загрузки файлов CSV в PowerShell с помощью Invoke-RestMethod или же Invoke-WebRequest?

Решение: я понял, что у меня была опечатка с моим URI, после исправления это сработало! Приносим извинения за неудобства.

1 ответ

Непонятно, какую конечную точку вы использовали, однако вот пример из документации

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'
Другие вопросы по тегам