Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Api Powershell调用rest方法_Api_Rest_Powershell - Fatal编程技术网

Api Powershell调用rest方法

Api Powershell调用rest方法,api,rest,powershell,Api,Rest,Powershell,我正在尝试创建一个powershell脚本来访问DYN的API,并对我使用/测试的DNS区域执行检查/更新 我正在关注他们的API细节,这里是第一个链接 以下是我编写的REST脚本的开头: $url = "https://api2.dynect.net/REST/Session/" $body = @{customer_name='mahcompany';user_name='mahname';password='mahpass'} Invoke-RestMethod -Method Post

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

我正在关注他们的API细节,这里是第一个链接

以下是我编写的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
这将产生以下结果:

Invoke RestMethod:远程服务器返回错误:(406)不可接受。 第12行字符:9 +$test=调用RestMethod-Method-Post-Uri$url-Body$Body + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:InvalidOperation:(System.Net.HttpWebRequest:HttpWebRequest)[Invoke->RestMethod],WebException +FullyQualifiedErrorId: WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeStmethodCommand

根据DYN信息,这应该是一个JSON查询,因此我尝试了其他几个DYN使用CURL作为基础的示例:

$json = @"{"customer_name":"yourcustomer","user_name":"youruser","password":"yourpass"}' 
然而,这也不起作用

有人能给我指一下正确的方向吗?这不会那么疯狂,我只是想将参数传递到rest方法查询字符串中。在这一点上,任何帮助都将不胜感激

-肖恩

内容类型
Invoke RestMethod-Method Post-Uri$url-Body$Body-ContentType'application/json'
如果dyn.com希望使用正确的内容类型,则可能会出现此问题

根据以下文件:

如果省略此参数且请求方法为POST,则Invoke RestMethod将内容类型设置为“application/x-www-form-urlencoded”。否则,不会在调用中指定内容类型

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

$data=@{
顾客=‘某物’
name=‘随便什么’
}
$data |转换为JSON

我并不是说你肯定在制作格式错误的JSON,但这有助于防止出现这种情况。

你有没有找到关于这个问题的答案?我也有类似的问题。我能够获得会话令牌,然后在DNS结构中工作,但是我遇到了子区域和其他问题。由于基于URL的命令结构存在问题,我无法获得完整的区域创建/管理功能。我可能仍然能够重新创建我创建的,或者如果你有一个样本,我可以看看你在那里有什么。