Извлечь прикрепленный файл из ответа
Согласно документу 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
.