繁体   English   中英

我如何从IBM Bluemix调用Web服务并捕获数据

[英]How do I call a web service from IBM Bluemix and capture the data

我有一个IBM Bluemix帐户。 外部数据提供者将向我提供对其Web服务之一的访问权限,该服务在被调用时将异步获取我的数据。 如何调用Web服务并捕获数据?

您说过,Web服务是异步的,但在Web应用程序的上下文中,该服务更可能是同步的,但它是异步访问的。 最有可能的是,例如通过AJAX调用该服务。 对该服务进行了调用,然后继续执行。 收到响应后,将异步执行成功或失败功能(回调)。 如果服务本身是异步的,那么您必须基于某些队列逻辑(或消息驱动的bean或其他)开发一个更复杂的客户端。 上述两种情况都需要您开发一个调用Web服务并根据其响应进行工作的应用程序。

您可以使用RuntimesBoilerplates来完成

还有一个API连接服务,它允许(在其他功能之中),以进口的API定义和测试从API设计测试工具吧。 但是,如果需要使用数据并对其执行一些逻辑,则需要如上所述的应用程序。

如上所述,您应该能够使用AJAX调用以任何语言调用网址。 如果返回类型是JSON,则任何语言都应该能够从AJAX调用中提取结果。

这是我用来从Bluemix应用程序获取数据的node.js方法:

 /* * url: http or https web address that accepts POST..or GET * callbackFunc: pass the name of a callback function that is in the same scope of makeAjaxCall(). you can pass NULL * obj: the POST parameters. I use a JSON object * callbackParams: any parameters you want to pass to your callback function. can be NULL. */ function makeAjaxCall(url, callbackFunc, obj, callbackParams) { var _data = (!isNull(obj)) ? obj : null; if (!isNull(_data)) { $.ajax({ url: url, //dataType: "json", type: "POST", data: _data, success: function (res) { callbackFunc(jsonStr); }, error: function (err) { if (err.status == 500) { showNotification(err.responseText); } showBusy(false); } }); } } function isNull(inVar) { if (typeof (inVar) == 'undefined') { return true; } else if (typeof (inVar) == 'string') { if (inVar == '') { return true; } } else if (typeof (invar) == 'int') { if (inVar < 1) { return true; } } else if (inVar == null) { return true; } return false; } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM