在ColdFusion 9中是否可以进行同步SOAP调用?我感兴趣的特定API由eCircle发布,他们在这里有一个使用PHP的例子
http://developer.ecircle-ag.com/apiwiki/wiki/SynchronousSoapAPI#section-SynchronousSoapAPI-PHPSample
使用ColdFusion可以实现同样的目的吗?
答案 0 :(得分:3)
从http://developer.ecircle-ag.com/apiwiki/wiki/SynchronousSoapAPI#section-SynchronousSoapAPI-PHPSample到CFScript的快速端口
...
client = createObject('webservice','http://webservices.ecircle-ag.com/soap/ecm.wsdl');
...
// ask for the api version
result = client.getVersion();
// check if there was an error calling the API function?
// exception will be thrown I guess...
...
writeOutput("The Version Number is :<pre>#result.getVersionReturn#</pre>";
...
// logon
result = client.logon(FORM.realm, FORM.username, FORM.passwd);
// get session id
sessionid = result.logonReturn;
.....
// font forget to log out later !
参考:http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-78b4.html
答案 1 :(得分:2)
调用webservices是同步的。
答案 2 :(得分:0)
你的意思是异步电话吗?我的其余部分是基于这个假设。
此时,没有。为了支持这一点,您需要指定一个特定的CFC /函数来处理Web服务响应 - 当它响应时 - 在另一个线程上。也许很快,如果CF支持闭包(并且推测它是coming)。
ColdFusion支持内置的SOAP Web服务 - Web上有大量资源。
您还可以调查使用事件网关进行异步处理,或者您确实可以要求SOAP提供程序接受您的请求,然后将响应发送到您为其定义的另一个Web服务的单独请求中。这会产生异步调用的错觉,但实际上你只是关闭响应然后等待其他地方的响应。它并不是所有TBH的理想选择,因为它意味着您必须匹配可能变得混乱的请求和响应。
希望有所帮助。