Извлечь прикрепленный файл из ответа - PullRequest
0 голосов
/ 16 января 2020

Согласно документу Whitesource заголовки ответа будут иметь

Content-Type = application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Content-Disposition: attachment; filename=<product name>.xslx 

Я хочу извлечь этот файл xslx, но не знаю как. Я попытался записать ответ в файл, но все, что я получил, это набор двоичных символов.

Invoke-RestMethod -SkipCertificateCheck -Method Post -ContentType 'application/json' -Body $body -Uri "https://app.whitesourcesoftware.com/api/v1.3 | Out-File "abcd.csv"

Я также пытался преобразовать ответ в csv перед его записью, но это не работать либо.

Invoke-RestMethod -SkipCertificateCheck -Method Post -ContentType 'application/json' -Body $body -Uri "https://app.whitesourcesoftware.com/api/v1.3 | ConvertTo-CSV | Out-File "abcd.csv"

Есть идеи?

1 Ответ

0 голосов
/ 20 января 2020

После небольшого копания я понял, что файл присутствует в части content respose. Я использовал Invoke-WebRequest вместо Invoke-RestMethod. Вот мои сценарии:

$response = Invoke-WebRequest -Method Post -ContentType 'application/json' -Body $body -Uri $server
[System.IO.File]::WriteAllBytes("report.xlsx", $response.content)

Это запишет прикрепленный файл в файл с именем report.xlsx.

...