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'