我正在尝试创建一个Powershell脚本来访问DYN的API,并对我使用/测试的DNS区域执行检查/更新。

我正在关注他们的API详细信息,这是第一个链接https://help.dyn.com/session-log-in/

这是我放在一起的REST脚本的开始:

$url = "https://api2.dynect.net/REST/Session/"
$body = @{customer_name='mahcompany';user_name='mahname';password='mahpass'}
Invoke-RestMethod -Method Post -Uri $url  -Body $body

这将产生以下结果:



根据DYN信息,这应该是一个JSON查询,因此我尝试了使用CURL作为基础的DYN的其他示例:
$json = @"{"customer_name":"yourcustomer","user_name":"youruser","password":"yourpass"}'

但是,这也不起作用。

有人可以在这里向我指出正确的方向吗?这可不是那么疯狂,我只是想将参数传递给rest-method查询字符串。任何帮助,在这一点上将不胜感激。

-西恩

最佳答案

内容类型

Invoke-RestMethod -Method Post -Uri $url -Body $body -ContentType 'application/json'

如果dyn.com期望使用适当的内容类型,则可能是问题。

根据有关 Invoke-RestMethod 的文档:


ConvertTo-JSON
您不必手动创建JSON字符串。您可以创建一个哈希表,然后将其转换:

$data = @{
    customer = 'something'
    name = 'whatever'
}
$data | ConvertTo-JSON

我并不是说您肯定在制作格式错误的JSON,但这可以帮助防止这种情况。

10-08 05:37