Skip to content
PiotrFerenc edited this page May 14, 2024 · 1 revision
       IDENTIFICATION DIVISION.
       PROGRAM-ID. HttpPostExample.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. IBM-370.
       OBJECT-COMPUTER. IBM-370.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  WS-URL                PIC X(50)  VALUE 'http://localhost:5000/execute'.
       01  WS-REQUEST-PAYLOAD.
           05 WS-PARAMETERS.
               10 WS-CONSOLE-TEXT PIC X(20) VALUE 'hallo word'.
           05 WS-TASKS OCCURS 1 TIMES.
               10 WS-SEQUENCE  PIC 9(2) VALUE 1.
               10 WS-NAME      PIC X(10) VALUE 'log'.
               10 WS-ACTION    PIC X(10) VALUE 'console'.
       01  WS-JSON-CONTENT      PIC X(200).
       01  WS-CONTENT-LENGTH    PIC 9(5).
       01  WS-RESPONSE-CODE     PIC 9(3).
       01  WS-RESPONSE-BODY     PIC X(200).

       PROCEDURE DIVISION.
           PERFORM PREPARE-JSON-CONTENT
           PERFORM SEND-HTTP-POST
           PERFORM PROCESS-RESPONSE
           STOP RUN.

       PREPARE-JSON-CONTENT.
           MOVE '{
                      "Parameters": {
                          "ConsoleText": "' TO WS-JSON-CONTENT.
           STRING WS-CONSOLE-TEXT DELIMITED BY SPACE
                  '"
                      },
                      "Tasks": [
                          {
                              "Sequence": ' DELIMITED BY SPACE
                  INTO WS-JSON-CONTENT.
           STRING WS-SEQUENCE DELIMITED BY SPACE
                  ',
                              "Name": "' DELIMITED BY SPACE
                  INTO WS-JSON-CONTENT.
           STRING WS-NAME DELIMITED BY SPACE
                  '",
                              "Action": "' DELIMITED BY SPACE
                  INTO WS-JSON-CONTENT.
           STRING WS-ACTION DELIMITED BY SPACE
                  '"
                          }
                      ]
                  }' DELIMITED BY SPACE
                  INTO WS-JSON-CONTENT.
           INSPECT WS-JSON-CONTENT TALLYING WS-CONTENT-LENGTH FOR CHARACTERS.

       SEND-HTTP-POST.
           CALL 'EZASOKET' USING
               BY VALUE 'POST'
               BY REFERENCE WS-URL
               BY REFERENCE WS-JSON-CONTENT
               BY VALUE WS-CONTENT-LENGTH
               RETURNING WS-RESPONSE-CODE.

       PROCESS-RESPONSE.
           IF WS-RESPONSE-CODE = 200
               DISPLAY 'Response: ' WS-RESPONSE-BODY
           ELSE
               DISPLAY 'Error: ' WS-RESPONSE-CODE.

       END PROGRAM HttpPostExample.
Clone this wiki locally