Извлечь прикрепленный файл из ответа

Согласно документу 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 ответ

Решение

Немного покопавшись, понял, что файл присутствует в contentчасть ответа. я использовал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.

Другие вопросы по тегам