除了以下帮助我完成此任务的答案外,还提供额外的上下文:
String str[] = ((java.util.Map)globalMap.get("tRESTClient_1_HEADERS")).get("Set-Cookie").toString().replace("[","").replace("]","").replace(",",";").split("; ");
String out = "";
for(int index = 0; index < str.length; index++){
if(str[index].startsWith("JSESSIONID=") || str[index].startsWith("CSRFToken=") || str[index].startsWith("SecurityTokenURL=")){
out = out + str[index] + "; ";
}
};
globalMap.put("cookie", out);
将 cookie 的元素分配给名为 cookie 的变量。 5. 将 cookie 传递到您的下一个 REST 调用中:
我希望这对下一个需要小助手的人有所帮助。
我正在研究一个非常直接的概念证明,以使用 Talend 通过 POST 操作登录。
从应用程序端,我使用带有正文的 POST 来接收 cookie。但是,我不知道如何从端点的响应中获取 cookie 详细信息。
在我的论坛潜伏,似乎有两种方法:一种使用tREST,另一种使用tRESTClient。
使用 tREST,我可以成功发布到端点,但似乎无法检索响应标头或正文:
此调用传递的 cookie 需要回收到后续调用中,以便它们进行身份验证。
我希望了解如何使用 tREST 或 tRESTClient 获取并传递 Cookie。我对 tRESTClient 的问题是我没有办法将正文传递给该组件。
有什么想法吗?
关于你的最后一点 - 你可以通过进入 tRestClient 的流程将主体传递给 tRestClient。该流可以有一个包含 json 格式正文的“字符串”字段,并且该字段需要映射到组件输入架构中的“字符串”列。 如果在您的情况下,您还没有包含正文的流,则可以使用 tFixedFlowInput 组件生成它。