如何从Post man客户端

时间:2016-06-08 05:42:04

标签: api rest bpm

我正在尝试从Post man客户端执行IBM BPM Rest api调用 例如: https://ustrial01.bpm.ibmcloud.com/bpm/dev/rest/bpm/wle/v1/user/current?includeInternalMemberships=true&parts=all

我设置了基本身份验证值(用户名,密码) 我的状态代码为200,但是我得到了一些HTML代码。

任何人都可以帮助我。任何帮助都会受到极大的赞赏。

4 个答案:

答案 0 :(得分:1)

如果您获得200状态,那么为什么需要回复?状态代码应该足够好,因为200意味着REST调用工作正常。

答案 1 :(得分:0)

我不熟悉您所指的产品,但听起来您需要在请求的Accept标题中指定要返回的媒体类型。我建议你尝试指定

Accept: application/json

或(作为IBM产品,我猜测XML可能是首选)

Accept: application/xml

答案 2 :(得分:0)

我尝试使用Chrome的Postman& amp ;;访问BPM REST api。 REST控制台插件。 根据我的经验,有时候我不会为什么看起来像Postman不会采取auth细节。

但是,下面的步骤总是对我有用: 1.登录Chrome中的BPM帐户, 2.打开REST Console插件,可以一直访问REST api GET / PUT。

希望这会有所帮助。感谢

答案 3 :(得分:0)

这个答案有两个部分,“长话短说”部分和精心设计的部分。

长话短说: IBM BPM Cloud公开了各种REST API与其BPM引擎进行交互,使其成为一种服务,或更常用的称为“无头BPM”或“ BPM即服务”。

  1. 这些REST API调用通过基本身份验证(即用户名/密码)进行保护

  2. 对于Cloud,用于REST API的用户名和密码与用户的凭证不同,该凭证将被用户用于登录IBM BPM Process Portal或网站。对于本地解决方案,它是相同的。

  3. 对于Cloud,必须请求一个“功能性”用户名密码(Cloud Admin可以创建这些密码),并且必须在服务调用中使用该密码。 例如,如果您要登录BPM Cloud的用户名/密码是“ johndoe@gmail.com/Test123”,那么将为此ID创建功能凭证(例如,“ somefunctionalusernamedjohn123 / 8jdklajl23”)。

  4. 我们可以在每个需求中使用此凭据,但是我们应该做的是,在对BPM服务器的第一次调用中使用这些凭据,在响应中将有一个特定的“ cookie”。我们应该保存它并在以后的调用中重新使用它,直到它到期为止(如果您在http客户端配置中禁用了“跟随重定向”,则会收到相应的http状态代码)。

我必须举起PMR才能获取此信息。 https://www.ibm.com/support/knowledgecenter/en/SSFPJS_8.6.0/com.ibm.wbpm.wle.editor.doc/topics/int_ext_services_start_process.html

示例Java代码以启动进程:

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://ustrial03.bpm.ibmcloud.com:443/bpm/dev/rest/bpm/wle/v1/process? 
processAppId=3u092jr02j-fghjkyk.u078992c166c1&bpdId=25.jk8989-539a-4150- 
b63e-ggui67868gjkgj7&action=start")
.put(null)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.addHeader("Accept", "application/json")
.addHeader("Connection", "keep-alive")
.addHeader("Authorization", "Basic YXJrYX242232jklkljljLmNvbTpkZWZjb240QA==")
.addHeader("Cache-Control", "no-cache")
.addHeader("Postman-Token", "f46c1525-899-9897-uoh89-bb2b21a57f16")
.build();

 Response response = client.newCall(request).execute();

在通过PMR找到此解决方案之前,我急切地在寻找解决方案或解决方法。我注意到我的REST调用已重定向到认证页面,并且我也注意到,这与尝试登录任何IBM BPM Process Portal时发生的情况非常相似。

使用Chrome登录到IBM BPM Portal之后,请注意它不会使您注销。因此,我猜答案在cookie中,通过反复试验,我拿起了cookie,即PD-S-SESSIONID(这样命名),并开始在我的服务中使用它们,但显然它们会在30 -40分钟因此,我继续使用硒和无头铬来完成与手动操作相同的操作。无论如何,本地解决方案或云的功能ID都不需要此hack。

我在项目中使用的另一个非常有用的API包装器是: https://github.com/egetman/ibm-bpm-rest-client。我必须进行一些更改才能使用试用帐户进行此操作,并且出于其他一些原因。 当然,如果没有IBM内置的REST API测试器的帮助,我们将走得很远 例如https://ustrial03.bpm.ibmcloud.com/bpm/dev/bpmrest-ui/BPMRestAPITester/index.jsp

谢谢!