當使用cfhttp標籤時,我通過cfhttpparam's包含body + header。如何確定在cfhttp SOAP請求中發送的確切XML?
由於Coldfusion在發送XML之前將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>
完全同意。提琴手對於這樣的活動至關重要。在使用HTTPS進行工作時,爲了讓CF與Fiddler交談,您必須做一些擺弄證書的工作,但這非常值得。作爲解決方法,請在cfhttp標記上設置proxy和proxyport屬性,並將URL更改爲任何非HTTPS URL,因爲您只想查看確切的請求數據。 – barnyr
我如何「擺弄證書」讓Fiddler在Coldfusion上運行?我瀏覽過ColdFusion管理員,但無法找到需要完成的工作。 –
與CF管理員無關。我相信@barnyr所指的是您需要將Fiddler證書導入Java證書密鑰庫,因爲您正在通過SSL進行通話。請參閱有關Fiddler如何使用SSL [解密受HTTPS保護的通信](http://www.fiddler2.com/Fiddler/help/httpsdecryption.asp)以及如何爲ColdFusion導入證書[導入證書 - ColdFusion](http: //helpx.adobe.com/coldfusion/kb/import-certificates-certificate-stores-coldfusion.html)。請記住,在更新證書庫後,您需要重新啓動ColdFusion。 –