Powershell Invoke-Webrequest "Нет файловой части в файле" CURL для Powershell - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь преобразовать этот рабочий запрос, сделанный в Cygwin, в Powershell:

Cygwin (Работает):

curl -k -u curl:Password -X PUT -F "file=$($_)" https://$($appliance)/wse/customblockpage/file/en

Powershell (не работает):

Invoke-Webrequest -Uri "https://$($appliance)/wse/customblockpage/file/en" -Method Put -Infile "$homePath\$($_)" -Credential $cred

Вот ошибка, которую я получаю:

Invoke-Webrequest: {"Ошибка": "Нет файловой части в файле", "Результат": "Ошибка"} В строке: 1 символ:1 + Invoke-Webrequest https://{IP Маскировка адреса} / wse / customblockpage / file / en ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CategoryInfo: InvalidOperation: (Система.Net.HttpWebRequest: HttpWebRequest) [Invoke-WebRequest], WebException + FullyQualifiedErrorId: WebCmdletWebResponseException, Microsoft.PowerShell.Commands.InvokeWebRequestCommand

1 Ответ

0 голосов
/ 17 октября 2018

{ "Error": "No file part in file", "Result": "Failure" } на самом деле является ответом об ошибке от веб-сервера, а не конкретным сообщением об ошибке PowerShell.

При вызове cURL вы указываете данные формы с флагом -F, но вы не обращаетепохоже, что в PowerShell это не так.

В PowerShell вы можете указать данные формы, используя флаг -Body, например:

Invoke-Webrequest -Uri "https://example.com/" -Method Put -Body @{ "file" = "hello.txt" }

Если вам нужно отправить фактическоесодержимое файла, тогда вы можете использовать это как -Body аргумент:

-Body @{ "file" = (Get-Content hello.txt) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...