У меня есть команда curl, которая выглядит следующим образом:
curl -u secret: -X POST https://api.flood.io/floods \
-F "flood[tool]=jmeter" \
-F "flood[threads]=10" \
-F "flood[rampup]=60" \
-F "flood[duration]=300" \
-F "flood[privacy]=public" \
-F "flood[name]=Performance Test" \
-F "flood_files[]=@SitemapPerfTest.jmx" \
-F "flood[grids][][infrastructure]=demand" \
-F "flood[grids][][instance_quantity]=1" \
-F "flood[grids][][region]=us-west-2" \
-F "flood[grids][][instance_type]=m5.xlarge" \
-F "flood[grids][][stop_after]=5"
Я пытаюсь написать эквивалентную команду в powershell, но борюсь с частью @SitemapPerfText.jmx
.
Вот что я пытаюсь:
$username = "secret"
$password = ""
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))
$floodFile = [IO.File]::ReadAllText('SitemapPerfTest.jmx');
$params = @{
"flood[tool]"="jmeter";
"flood[threads]"="10";
"flood[rampup]"="60";
"flood[duration]"="300";
"flood[privacy]"="public";
"flood[name]"="Performance Test";
"flood_files[]"="$floodFile";
"flood[grids][][infrastructure]"="demand";
"flood[grids][][instance_quantity]"="1";
"flood[grids][][region]"="us-west-2";
"flood[grids][][instance_type]"="m5.xlarge";
"flood[grids][][stop_after]"="5";
}
Invoke-WebRequest -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method Post -Uri "https://api.flood.io/floods" `
-ContentType 'multipart/form-data' `
-Body $params
Однако, похоже, что удаленная служба не распознает файл, который я отправляю. Какая команда powershell эквивалентна параметру @file
в cURL?