Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] web запросы из powershell (http://forum.oszone.net/showthread.php?t=315013)

pogo 19-05-2016 13:06 2635905

web запросы из powershell
 
Доброго времени суток!

Помогите переделать bash запрос nix-а, в powershell винды.
никсовый запрос выглядит так:
Код:

curl -n -v -d "HEADER=domain.ru&MSG=$message&MSISDN=1234567" https://gate.OTHERDOMAIN.su/simple_test/
пробую переделать для поша
Код:

cls
$url = "https://gate.OTHERDOMAIN.su/simple_test/HEADER=domain.ru&MSG=Test&MSISDN=1234567"
$user = "user"
$pass= "password"
$secpasswd = ConvertTo-SecureString $pass -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($user, $secpasswd)

$result = Invoke-WebRequest -Uri $url -Method Post -Credential $credential

На что получают ответ
Цитата:

Invoke-WebRequest : Not Found
The requested URL <url> was not found on this server.

Foreigner 19-05-2016 13:15 2635910

pogo, А $message это переменная или часть адреса как есть? Если второе, то попробуйте url заключить в одинарные кавычки

pogo 19-05-2016 13:21 2635913

Foreigner,
Когда копировал запросы, пропустил. Сейчас поправил исходный текст.
Это переменная, но для простоты использую просто тестовую текстовое значение.

Kazun 19-05-2016 13:25 2635917

Попробовать:
Код:

$url = "https://gate.OTHERDOMAIN.su/simple_test"
$postParam = @{HEADER="domain.ru";MSG=$message;MSISDN=1234567}
$result = Invoke-WebRequest -Uri $url -Method Post -Credential $credential -Body $postParam


pogo 19-05-2016 13:30 2635922

Kazun,
Подозреваю, что после 1234567 нужна двойная кавычка, но почему то после этого ругается на скобку "}"
точнее даже так

Цитата:

+ $postParam = @{"HEADER=domain.ru;MSG=$message;MSISDN=1234567"}
+ ~
Missing '=' operator after key in hash literal.
At line:10 char:92
+ ... Body $postParam

Foreigner 19-05-2016 13:33 2635924

pogo, Попробуйте HEADER=.... вынести в параметр -Headers. Еще возможно надо прописать другой user agent, например от фф -- как-то промучился с получением xml, пока не прописал другой в -UserAgent.

PS. Без реального url не могу посоветовать что-то конкретное.

Цитата:

Цитата pogo
ругается на скобку "}" »

Вы с кавычками переборщили.

pogo 19-05-2016 13:39 2635928

Foreigner,
Реальный Url к сожаления привести не могу, но то что приведено в первом посте, по синтаксису полностью соответствует оригиналу. Заменены ключевые слова на обезличенное.
Пробовать выносил, ругается на то, что строка типа string не может быть использована в -headers

Kazun,
Большое вам спасибо.
Удалось реализовать требуемое, благодаря вашему совету.
Вот окончательный рабочий вариант, может кому пригодится

Код:

cls
$url = "https://gate.test.com/test_simple/"
$postParam = @{"HEADER"="domain.ru";"MSG"="Test";"MSISDN"="812345678"}
$user = "user"
$pass= "password"
$secpasswd = ConvertTo-SecureString $pass -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($user, $secpasswd)

$result = Invoke-WebRequest -Uri $url -Method Post -Credential $credential -Body $postParam



Время: 12:58.

Время: 12:58.
© OSzone.net 2001-