VBA MSSOAP.SoapClient30错误:为SOAP请求提供的参数数量不正确HRESULT=0x80070057
更新:所以我想我需要以某种方式在方法参数处提交一个复杂类型-如何使用VBA实现这一点 这是我第一次编写VBA代码,我将非常感谢任何关于如何解决问题的建议。基本上,我已经编写了一个小的soap服务,它工作得很好-我用SoapUI测试它-所以我想其他应用程序应该能够使用它 。也许,对于VBScript SOAPClient来说,它并不太友好——在这个方向上的任何点都会有很大帮助 我试图把一些实际使用它的代码放在一起(下面是VBScript)——我在谷歌搜索时发现的一个示例的基础上构建了它。它会生成以下错误:VBA MSSOAP.SoapClient30错误:为SOAP请求提供的参数数量不正确HRESULT=0x80070057,vba,soap,Vba,Soap,更新:所以我想我需要以某种方式在方法参数处提交一个复杂类型-如何使用VBA实现这一点 这是我第一次编写VBA代码,我将非常感谢任何关于如何解决问题的建议。基本上,我已经编写了一个小的soap服务,它工作得很好-我用SoapUI测试它-所以我想其他应用程序应该能够使用它 。也许,对于VBScript SOAPClient来说,它并不太友好——在这个方向上的任何点都会有很大帮助 我试图把一些实际使用它的代码放在一起(下面是VBScript)——我在谷歌搜索时发现的一个示例的基础上构建了它。它会生成以
Incorrect number of parameters supplied for SOAP request HRESULT=0x80070057
Module Module1
Dim WSDLFileName As String
Dim base64attachment As String
Dim attachment_filename As String
Dim summary As String
Dim SoapClient
Dim res
Sub Main()
WSDLFileName = "http://localhost:7777/?wsdl"
base64attachment = "UG9ydG1hbiBpcyBwb3J0Zm9saW8gbWFuYWdlbWVudCBzb2Z0d2FyZSB0byBoZWxwIFBNTyBrZWV"
attachment_filename = "test_file.txt"
summary = "test issue with summary"
SoapClient = CreateObject("MSSOAP.SoapClient30")
SoapClient.MSSoapInit(WSDLFileName)
res = SoapClient.CreateJiraIssueWithBase64Attachment(summary, base64attachment, attachment_filename)
Console.Out.WriteLine(res)
End Sub
End Module
任何指示都会有帮助,我在这里迷路了
我希望它会产生如下响应:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:open="open.JiraAdapter">
<soapenv:Header/>
<soapenv:Body>
<open:CreateJiraIssueWithBase64Attachment>
<open:summary>some summary</open:summary>
<open:base64attachment>BASE64CODEDFILE</open:base64attachment>
<open:attachment_filename>NAME of the file attached</open:attachment_filename>
</open:CreateJiraIssueWithBase64Attachment>
</soapenv:Body>
</soapenv:Envelope>
一些总结
BASE64CODEDFILE
所附文件的名称
您的服务响应包含复杂类型的对象
<xs:element name="CreateJiraIssueWithBase64AttachmentResult" type="s0:Status" minOccurs="0" nillable="true"/>
希望这对你有帮助
Connector = CreateObject("MSSOAP.HttpConnector30")
Connector.Property("EndPointURL") = "url"
Connector.Property("UseSSL") = True
Connector.Connect
Connector.Property("SoapAction") = "CreateJiraIssueWithBase64Attachment"
Connector.BeginMessage
Serializer = CreateObject("MSSOAP.SoapSerializer30")
Serializer.Init(Connector.InputStream)
Serializer.StartEnvelope
Serializer.StartBody
Serializer.StartElement("CreateJiraIssueWithBase64Attachment";"open.jiraAdapter.test")
Serializer.StartElement("summary";"open.jiraAdapter.test")
Serializer.WriteString("another test issue for JUR")
Serializer.EndElement
Serializer.StartElement("base64attachment";"open.jiraAdapter.test")
Serializer.WriteString("Y29kZTogaHR0cDovL3Bhc3RlYmluLmNvbS9EbUx3N0oycQ0KeG1sOiBodHRwOi8vcGFzdGViaW4uY29tLzE3Q2MxVjJM")
Serializer.EndElement
Serializer.StartElement("attachment_filename";"open.jiraAdapter.test")
Serializer.WriteString("readme.txt")
Serializer.EndElement
Serializer.EndElement
Serializer.EndBody
Serializer.EndEnvelope
Connector.EndMessage
Reader = CreateObject("MSSOAP.SoapReader30")
Reader.Load(Connector.OutputStream)
/// Reader.Body.xml - response