Quantcast
Channel: Visual COBOL - Forum - Recent Threads
Viewing all articles
Browse latest Browse all 4356

winHttp

$
0
0

In a native cobol program, I'm trying to make a web request using the WinHttp.WinHttpRequest.5.1 com object.  The process works just fine if I'm sending text to the web site:

           INVOKE WINHTTP "new" RETURNING WH.
           IF WH = NULL
              MOVE "WINHTTP Service failed to initialize" TO LOG-REC
              WRITE LOG-REC
           END-IF.
           
           MOVE "CALLING ESEC" TO LOG-REC.
           WRITE LOG-REC.
           
           INVOKE WH "Open" using
                       z"POST"
         z"http://ioits1web01/enterprisesecurity/api/Security/Validate".
                       HTTP-ESEC-VALIDATE-URL.
       ***                ws-boolfalse.
       
       ** set document type to text/json
           INVOKE WH "SetRequestHeader"  USING z"Content-type"
                                              z"text/json"
                                        RETURNING HTTP-STATUS.
           MOVE HTTP-STATUS TO HTTP-DSTATUS.
           MOVE SPACES TO LOG-REC.
           STRING "SETREQUESTHEADER RETURNED - " HTTP-DSTATUS
               INTO LOG-REC.
           WRITE LOG-REC.
       
       ** SET UP POST VARIANT
           INITIALIZE HTTP-LEN.
           INSPECT HTTP-REQ-STRING TALLYING HTTP-LEN FOR CHARACTERS
               BEFORE INITIAL LOW-VALUE.
               
           INVOKE OLEVARIANT "new" returning OV.
           IF OV = NULL
               MOVE "OLE VARIANT FAILED TO INITIALIZE" TO LOG-REC
               WRITE LOG-REC
           ELSE
               MOVE "CALLING SETSTRING" TO LOG-REC
               WRITE LOG-REC
               MOVE LENGTH OF HTTP-REQ-STRING TO HTTP-LEN
               INVOKE OV "setString" using by value HTTP-LEN
                                     BY REFERENCE HTTP-REQ-STRING
                                     RETURNING HTTP-STATUS
           END-IF.
                  
           MOVE HTTP-STATUS TO HTTP-DSTATUS.
           MOVE SPACES TO LOG-REC.
           STRING "SETSTRING RETURNED - " HTTP-DSTATUS INTO LOG-REC.
           WRITE LOG-REC.
           
           INVOKE WH "Send"  using HTTP-REQ-STRING
                             RETURNING HTTP-STATUS.
              
           MOVE HTTP-STATUS TO HTTP-DSTATUS.
           MOVE SPACES TO LOG-REC.
           STRING "ESEC SEND RETURN CODE = " HTTP-DSTATUS
              INTO LOG-REC.
           WRITE LOG-REC.
           
           INVOKE WH "getResponseText" returning WS-SSO-RETURN-MSG.

However, I need to send either XML or a JSON to the site.  I tried doing:

           INVOKE WH "SetRequestHeader"  USING z"Content-type"
                                                                                z"text/json"
                                        RETURNING HTTP-STATUS.

However, that returns an error "OLE Name not found" (80020006): Unknown name".


How can I set the content type of the outgoing data to be something other than "text/plain".


Mike


Viewing all articles
Browse latest Browse all 4356

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>