目前我尝试通过 API 将我的应用程序连接到ConfigMgr Web 服务,但通过发送我的 SOAP API 请求时curl
总是出现 400 错误。
我们正在编写自己的应用程序来与 SCCM“对话”,由于公司限制,我们无法使用 PowerShell,因此我们尝试使用ConfigMgr Web 服务。这里有没有人有使用这个小 API 的经验,并且可以为我指明使用它的正确方向?
此刻我尝试获取这个端点GetCWVersion
。
如果您需要更多信息,请直接询问!
答案1
我通过使用 python 而不是在 中测试来解决这个问题curl
。使用requests
库非常简单。
"""Just an example for a soap request"""
import requests
host = "host"
secret = "secret"
filter = "filter"
url = "https://" + host + "/ConfigMgrWebService/ConfigMgr.asmx"
payload ="""<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetCMDeviceCollections xmlns="http://www.scconfigmgr.com">
<secret>{secret}</secret>
<filter>{filter}</filter>
</GetCMDeviceCollections>
</soap12:Body>
</soap12:Envelope>""".format(secret=secret, filter=filter)
headers = {
'Content-Type': 'application/soap+xml; charset=utf-8'
}
response = requests.request("POST", url, headers=headers, data=payload, verify = False)
print(response.text)