执行POST请求并设置请求数据

Uncategorized
1.9k words

执行POST请求并设置请求数据

引言

  • 文档目的
    在Camunda中使用 service task 中的 http-connector 执行 POST 请求并设置请求数据

功能或技巧概述

  • 功能或技巧简介
  • 适用场景
    • 发送POST请求外部系统并设置请求数据

具体实现

  1. 定义HTTP Connector:
    在Camunda的BPMN流程图中,添加一个HTTP Connector任务。在任务的属性面板中,配置HTTP Connector的基本信息,包括URL、请求方法(GET)、请求头、请求体等。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <bpmn:serviceTask id="Activity_0c7b53j" name="request">
    <bpmn:extensionElements>
    <camunda:connector>
    <camunda:inputOutput>
    <camunda:inputParameter name="headers">
    <camunda:map>
    <camunda:entry key="Content-Type">application/json</camunda:entry>
    </camunda:map>
    </camunda:inputParameter>
    <camunda:inputParameter name="method">POST</camunda:inputParameter>
    <camunda:inputParameter name="url">https://dog.ceo/api/breeds/image/random</camunda:inputParameter>
    <camunda:inputParameter name="payload">
    <camunda:script scriptFormat="JavaScript">var payload =
    {
    "name":name,
    "idCard":idCard
    }
    JSON.stringify(payload);</camunda:script>
    </camunda:inputParameter>
    <camunda:outputParameter name="responseBody">
    <camunda:script scriptFormat="JavaScript">var repBody = connector.getVariable('response');
    S(repBody)</camunda:script>
    </camunda:outputParameter>
    </camunda:inputOutput>
    <camunda:connectorId>http-connector</camunda:connectorId>
    </camunda:connector>
    </bpmn:extensionElements>
    <bpmn:incoming>Flow_1g2apc4</bpmn:incoming>
    <bpmn:outgoing>Flow_17iw7vx</bpmn:outgoing>
    </bpmn:serviceTask>
  2. 设置请求体数据:
    在HTTP Connector任务的输入参数中,定义一个变量payload来设置请求体的数据
    1
    2
    3
    4
    5
    var payload = {
    "name":name,
    "idCard":idCard
    }
    JSON.stringify(payload);
    在上面的代码中定义了一个对象 payload 其中的 name、idCard 是来自于流程中的变量,然后通过 JSON.stringify() 将对象转换成 jsonString
    Alt text