Эквивалент Curl @file в Powershell?

#powershell #curl

#powershell #curl

Вопрос:

У меня есть команда 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?

Комментарии:

1. $floodFile похоже, что в нем есть содержимое, которое вы ищете? Это текстовый файл?

2. Да, это XML-файл.

3. То, что вы делаете, выглядит правильно. Вы получаете сообщение об ошибке или файл просто отсутствует при последующей проверке?