是的,它可以。这个场景对我有用,但我使用的是 XML 格式(WCF SOAP)而不是 rest/json,但你可以试试。
-我使用soap UI来确定soap Envelope应该是什么样子。这个工具是免费的http://www.soapui.org/并且很容易使用。
- 创建新的 Soap UI 项目并在输入中粘贴 WSDL 地址,应用程序将生成空的 XML 请求 - 肥皂信封。
- 您可以从此应用程序测试您的服务
-我正在使用 cfhttp 从 cf 调用服务:
我们找到了肥皂信封并将其放入 cf 变量中:
<cfsavecontent variable="soapBody">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:ozon="http://schemas.datacontract.org/blah/prc">
<soapenv:Header/>
<soapenv:Body>
<tem:myservicemethod>
<tem:someParameter1>This is my first param</tem:someParameter1>
<tem:someParameter2>
<blah:AC>This is my second parameter</blah:AC>
</tem:someParameter2>
</tem:myservicemethod>
</soapenv:Body>
</soapenv:Envelope>
</cfsavecontent>
现在调用服务。这是我从 Ben Nadel 的博客中挖掘出来的:http ://www.bennadel.com/blog/1809-Making-SOAP-Web-Service-Requests-With-ColdFusion-And-CFHTTP.htm
<cfhttp
url="http:/SomeService/Service.svc"
method="post"
result="httpResponse">
<!---
TIP : Look into your WSDL to figure out SOAPAction value
--->
<cfhttpparam
type="header"
name="SOAPAction"
value="http://tempuri.org/SomeService/myservicemethod"
/>
<cfhttpparam
type="header"
name="accept-encoding"
value="no-compression"
/>
<cfhttpparam
type="xml"
value="#trim( soapBody )#"
/>
</cfhttp>
<cfdump var="#httpResponse#" />