尝试使用 SolidWorks 发出 HTTP 请求时出现奇怪的错误 VBA

Strange errors when trying to make HTTP requests with SolidWorks VBA

我需要将 Autodesk PLM 360 服务集成到 SolidWorks 中,我正在使用 VBA 来完成它。为了启动 HTTP 请求,我使用以下代码:

Dim objHTTP As MSXML2.ServerXMLHTTP
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.setRequestHeader "Content-Type", "application/xml" '<-- Error occurs here
objHTTP.Open "POST", "https://mytenant.autodeskplm360.net/rest/auth/1/login", False
objHTTP.send "<metaFields>" & _
                "<password>MyPassword</password>" & _
                "<userID>MyUserID</userID>" & _
             "</metaFields>"

上述代码的第三行出现以下错误:

当我注释掉有问题的行时,HTTP 请求返回的状态是“415 - 不支持的媒体类型”。

有没有人能理解这里的问题所在?我所做的所有搜索都没有帮助。

P.S。我还应该注意到,同样的问题也出现在 Excel 中,所以这不是由于 VBA 的 SolidWorks 实施正在做的事情。

正如@barrowc 在评论中指出的那样,setRequestHeader 命令需要跟在 open 命令之后。它应该是这样的:

Dim objHTTP As MSXML2.ServerXMLHTTP
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.Open "POST", "https://mytenant.autodeskplm360.net/rest/auth/1/login", False
objHTTP.setRequestHeader "Content-Type", "application/xml"
objHTTP.send "<metaFields>" & _
                "<password>MyPassword</password>" & _
                "<userID>MyUserID</userID>" & _
             "</metaFields>"