Войти

Показать полную графическую версию : [решено] web запросы из powershell


pogo
19-05-2016, 13:06
Доброго времени суток!

Помогите переделать 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
pogo, А $message это переменная или часть адреса как есть? Если второе, то попробуйте url заключить в одинарные кавычки

pogo
19-05-2016, 13:21
Foreigner,
Когда копировал запросы, пропустил. Сейчас поправил исходный текст.
Это переменная, но для простоты использую просто тестовую текстовое значение.

Kazun
19-05-2016, 13:25
Попробовать:
$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
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
pogo, Попробуйте HEADER=.... вынести в параметр -Headers. Еще возможно надо прописать другой user agent, например от фф -- как-то промучился с получением xml, пока не прописал другой в -UserAgent.

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

ругается на скобку "}" »
Вы с кавычками переборщили.

pogo
19-05-2016, 13:39
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




© OSzone.net 2001-2012