如何解决curl 调用 WebRequest
欢迎任何帮助,我的脑袋再也受不了了。
尝试修改路由器 Sonicwall API 中的对象。身份验证有效。
这是工作:
curl -k -i -X PUT -H "accept: application/json" -H "Content-Type: application/json" https://172.20.0.22/api/sonicos/address-objects/ipv4/name/FUTU_TEST -d "{\"address_object\":{\"ipv4\":{\"host\":{\"ip\":\"17.20.21.21\"},\"zone\":\"VLAN111\"}}}"
HTTP/1.0 200 OK
Server: SonicWALL
Expires: -1
Cache-Control: no-cache
Content-type: application/json; charset=UTF-8
X-Content-Type-Options: nosniff
{
"status": {
"success": true,"cli": {
"mode": "config_mode","depth": 1,"configuring": true,"pending_config": true,"restart_required": "NONE"
},"info": [
{
"level": "info","code": "E_OK","message": "Success."
}
]
}
}
这不会:
$body = @{
"address_object" = @{
"ipv4" = @{
"host" = @{
"ip"="172.22.22.22";
"zone"= "VLAN123";
}
}
}
} | ConvertTo-Json -Depth 4
Invoke-WebRequest -Method Put -ContentType "application/json" -Headers @{'accept'='application/json'} -Uri "https://172.20.0.22/api/sonicos/address-objects/ipv4/name/FUTU_TEST" -Body $body
PSMessageDetails :
Exception : System.Net.WebException: Le serveur distant a retourné une erreur : (400) Demande incorrecte.
à Microsoft.PowerShell.Commands.WebRequestPSCmdlet.GetResponse(WebRequest request)
à Microsoft.PowerShell.Commands.WebRequestPSCmdlet.ProcessRecord()
Targetobject : System.Net.HttpWebRequest
CategoryInfo : InvalidOperation : (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest],WebException
FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
ErrorDetails :
InvocationInfo : System.Management.Automation.InvocationInfo
ScriptStackTrace : à <ScriptBlock>,<Aucun fichier> : ligne 1
PipelineIterationInfo : {}
我不知道为什么我的 powershell 出现代码 400 错误。正文中的 json 格式错误?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。