当使用cfhttp标签时,我通过cfhttpparam包含了body + header。
由于Coldfusion在发送之前将XML融合在一起的方式,我在另一端遇到了语法错误。
我需要一个临时的CFC,我可以直接调用它进行测试,它会向我显示我发送的确切XML。
如何确定cfhttp请求中发送的确切XML?
我尝试过getHttpRequestData()但是这个方法返回的是一个结构而不是我正在寻找的语法。
这个问题有类似的线索,但并没有解决我的具体需求。 View cfhttp request
<!--- Define Header --->
<cfsavecontent variable="soapHeader">
<cfoutput>
<soap:Header>
<wsse:Security soap:mustUnderstand="1">
<wsse:UsernameToken>
<wsse:Username>MyUser</wsse:Username>
<wsse:Password>MyPass</wsse:Password>
<wsse:Nonce>fsdf568sf234k</wsse:Nonce>
<wsu:Created>2012-01-07T06:17:56Z</wsu:Created>
</wsse:UsernameToken>
<wsse:Security>
</soap:Header>
</cfoutput>
</cfsavecontent>
<!--- Define Body --->
<cfsavecontent variable="soapBody">
<cfoutput>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<EmpCpsVerifyConnection xmlns="https://www.vis-dhs.com/EmployerWebService/" />
</soap:Body>
</soap:Envelope>
</cfoutput>
</cfsavecontent>
<!--- Make SOAP Request --->
<cfhttp
method="post"
url="https://stage.e-verify.uscis.gov/WebService/EmployerWebServiceV24.asmx?wsdl"
result="httpResponse">
<cfhttpparam
type="header"
name="SOAPAction"
value="https://www.vis-dhs.com/EmployerWebService/EmpCpsVerifyConnection"
/>
<cfhttpparam
type="header"
name="Security"
value="#trim( soapHeader )#"
/>
<cfhttpparam
type="body"
value="#trim( soapBody )#"
/>
</cfhttp>
答案 0 :(得分:3)
答案 1 :(得分:0)
方法1 - 将xml变量输出到Web浏览器。查看html源代码。
方法2 - 将xml变量输出到textarea。
答案 2 :(得分:0)
如果您通过普通的CF机制调用SOAP方法,则可以通过编辑文件{cf-root} /wwwroot/WEB-INF/client-config.wsdd来启用完整的SOAP xml数据包日志记录。
在&lt; globalConfiguration&gt;中添加或启用以下行元素:
<requestFlow>
<handler type="log"/>
</requestFlow>
<responseFlow>
<handler type="log"/>
</responseFlow>
在我的机器上,日志记录以{cf-root} /logs/cfserver.log结束。