Один из способов отправить запрос POST с «связанными» компонентами - через PowerShell. Не зная, как вы обычно его отправляете, я могу дать только общее описание.
В основном используйте класс .NET WebClient
.
$wc = New-Object System.Net.WebClient;
$wc.UploadString($url, "POST", $data);
Чтобы отправить содержимое текстового файла, прочитайте его в переменную:
$data = [System.IO.File]::ReadAllText($filename);
Если вы хотите имитировать отправку веб-формы, вам необходимо следующее:
$wc.Headers.Add("Content-type", "application/x-www-form-urlencoded");
Это обычно требует пары ключ-значение:
$data = "uploadeddata=" + [System.IO.File]::ReadAllText($filename);
Это также может помочь:
wc.Encoding = System.Text.Encoding.UTF8;
Пример с API Pastebin:
$url = "http://pastebin.com/api/api_post.php";
$filename = "test.txt";
$api_dev_key = "a Pastebin API dev key should go here";
$api_option = "paste";
$api_paste_code = [System.Uri]::EscapeDataString([System.IO.File]::ReadAllText($filename));
$data = "api_dev_key=" + $api_dev_key + "&api_option=" + $api_option + "&api_paste_code=" + $api_paste_code;
$wc = New-Object System.Net.WebClient;
$wc.Headers.Add("Content-type", "application/x-www-form-urlencoded");
$wc.UploadString($url, "POST", $data);
Все это на самом деле основано на программе на C #, которую я писал, так что может быть более короткий путь. Обычно нет необходимости в «однострочниках».
И прежде чем кто-либо предложит использовать Get-Content
для чтения текстового файла, Get-Content
возвращает массив с одной строкой на строку. Данные POST будет сложнее построить из этого.