2012-03-06 74 views
1

我使用ColdFusion 8.我有一个SOAP极其有限的经验。什么是适当的SOAP操作?

我试图发送一个SOAP请求。我的SOAP体看起来是这样的:

<cfsavecontent variable="SoapBody"> 
<cfoutput> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:v2="http://www.a2zshow.com/DataServices/v2/" > 
<soapenv:Header> 
<a2zAuthenticationHeader xmlns="http://www.a2zshow.com/DataServices/v2/"> 
<Key>#Key#</Key> 
<UserName>#UserName#</UserName> 
<Password>#Password#</Password> 
<InstallName>#InstallName#</InstallName> 
</a2zAuthenticationHeader> 
</soapenv:Header> 
<soapenv:Body> 
<DataService xmlns="http://www.a2zshow.com/DataServices/ExhibitorListRequest/v1"> 
<Request> 
<a2zXMLRootNode> 
<RequestHeader> 
<RequestAttribute Search="NONE"/> 
</RequestHeader> 
<RequestCriteria> 
<EventID>#EventID#</EventID> 
</RequestCriteria> 
</a2zXMLRootNode> 
</Request> 
</DataService> 
</soapenv:Body> 
</soapenv:Envelope> 
</cfoutput> 
</cfsavecontent> 

我的SOAP请求如下所示:

<cfhttp 
url="#PostURL#" 
method="post" 
result="httpResponse"> 
<cfhttpparam 
    type="header" 
    name="SOAPAction" 
    value="#SOAPAction#" /> 
<cfhttpparam 
    type="xml" 
    value="#trim(soapBody)#"/> 
</cfhttp> 

的SOAPAction的变量设置是这样的:

SOAPAction = "http://www.a2zshow.com/getExhibitorList"; 

我想我成功地张贴到正确的地方,但我收到一条错误消息,指出客户端无法识别SOAPAction。这是我的错误:

soap:ClientServer did not recognize the value of HTTP Header SOAPAction: http://www.a2zshow.com/getExhibitorList. 

此错误似乎告诉我,我没有SOAPAction正确。另一端的那个人告诉我,我已经把所有的东西都设置好了,它应该能够工作。有什么遗漏吗?

+0

你试图跨越的SOAPBody发送为'TYPE =“体”'而不是XML?上周我有一个类似的问题,那就是我发送错误的类型。 – 2012-03-06 19:39:51

+0

我刚试过,没有运气。我确信我被困在有错误的SOAPAction,但我们的供应商没有响应。我只需要知道我是否做了明显错误的事情。 – 2012-03-06 21:08:58

+0

你有没有尝试设置“http://www.a2zshow.com/”作为POSTURL和“getExhibitorList”作为SOAP行动? – Sureround 2012-03-07 03:01:36

回答

0

错误是在供应商的SOAPAction。他们给了我错误的网址。他们的文档创建8年前,他们更新它在2008年

我猜他们宁愿花时间做自己的产品很难通过混淆人比错误的信息,以用来帮助把事情搞定。

感谢您的帮助!