Invoke-WebRequest,带参数的POST

时间:2013-06-26 16:13:46

标签: powershell

我正在尝试POST到uri,并发送参数username=me

Invoke-WebRequest -Uri http://example.com/foobar -Method POST

如何使用POST方法传递参数?

4 个答案:

答案 0 :(得分:256)

将您的参数放在哈希表中并按如下方式传递:

$postParams = @{username='me';moredata='qwerty'}
Invoke-WebRequest -Uri http://example.com/foobar -Method POST -Body $postParams

答案 1 :(得分:78)

对于某些挑剔的Web服务,请求需要将内容类型设置为JSON,将主体设置为JSON字符串。例如:

Invoke-WebRequest -UseBasicParsing http://example.com/service -ContentType "application/json" -Method POST -Body "{ 'ItemID':3661515, 'Name':'test'}"

或XML的等效项

答案 2 :(得分:3)

这有效:

{u'active': True, u'product': u'prod_Bzxbarfoo', u'transform_usage': None, u'name': u'Agent - Yearly', u'aggregate_usage': None, u'created': 1513986904, u'tiers_mode': None, u'interval': u'year', u'tiers': None, u'object': u'plan', u'id': u'ra-yearly', u'currency': u'usd', u'amount': 7500, u'interval_count': 1, u'trial_period_days': 2, u'livemode': True, u'usage_type': u'licensed', u'metadata': {u'qb_product': u'71'}, u'nickname': u'Agent - Yearly', u'statement_descriptor': u'foobar.com/charge', u'billing_scheme': u'per_unit'}

答案 3 :(得分:0)

在将JSON用作正文{lastName:"doe"}进行POST api调用时,

单个命令,不带ps变量:

Invoke-WebRequest -Headers @{"Authorization" = "Bearer N-1234ulmMGhsDsCAEAzmo1tChSsq323sIkk4Zq9"} `
                  -Method POST `
                  -Body (@{"lastName"="doe";}|ConvertTo-Json) `
                  -Uri https://api.dummy.com/getUsers `
                  -ContentType application/json