| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /* -------------------------------------------------------------- */
- /* Shop - Mail - Versand */
- /* -------------------------------------------------------------- */
- DEF INPUT PARAMETER ipMailAdr AS CHAR NO-UNDO.
- DEF INPUT PARAMETER ipPasswort AS CHAR NO-UNDO.
- DEF INPUT PARAMETER ipBenutzer AS CHAR NO-UNDO.
- DEF INPUT PARAMETER ipKnr AS INT NO-UNDO.
- DEF VAR vcHost AS CHAR INIT "shop.huber-getraenke.ch"
- NO-UNDO.
- DEF VAR vcPort AS CHAR INIT "80" NO-UNDO.
- DEF VAR vhSocket AS HANDLE NO-UNDO.
- DEF VAR cPostURL AS CHAR INIT '/WebShop_Huber/faces/sendmailinitiator.xhtml'
- NO-UNDO.
- DEF VAR cPostData AS CHAR NO-UNDO.
- IF ipBenutzer <> ? AND
- ipKnr <> ? THEN cPostData = SUBSTITUTE('email=&1£password=&2£username=&3£knr=&4', ipMailAdr, ipPasswort, ipBenutzer, ipKnr).
- else cPostData = SUBSTITUTE('email=&1£password=&2', ipMailAdr, ipPasswort).
- cPostData = REPLACE(cpostData, '£', '&').
- cPostData = cPostURL + '?' + cPostData.
-
- CREATE SOCKET vhSocket.
- vhSocket:CONNECT('-H ' + vcHost + ' -S ' + vcPort) NO-ERROR.
-
- IF vhSocket:CONNECTED() = FALSE THEN
- DO:
- MESSAGE "Connection failure" VIEW-AS ALERT-BOX.
-
- MESSAGE ERROR-STATUS:GET-MESSAGE(1) VIEW-AS ALERT-BOX.
- RETURN.
- END.
-
- vhSocket:SET-READ-RESPONSE-PROCEDURE('getResponse').
- /* supposes there is an webspeed app called yourapp.w that receives param1, param2, param3 */
- RUN PostRequest (INPUT cPostData).
-
- WAIT-FOR READ-RESPONSE OF vhSocket.
- vhSocket:DISCONNECT() NO-ERROR.
- DELETE OBJECT vhSocket.
-
- PROCEDURE getResponse:
- DEFINE VARIABLE vcWebResp AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lSucess AS LOGICAL NO-UNDO.
- DEFINE VARIABLE mResponse AS MEMPTR NO-UNDO.
-
- IF vhSocket:CONNECTED() = FALSE THEN do:
- MESSAGE 'Not Connected' VIEW-AS ALERT-BOX.
- RETURN.
- END.
- lSucess = TRUE.
-
- DO WHILE vhSocket:GET-BYTES-AVAILABLE() > 0:
-
- SET-SIZE(mResponse) = vhSocket:GET-BYTES-AVAILABLE() + 1.
- SET-BYTE-ORDER(mResponse) = BIG-ENDIAN.
- vhSocket:READ(mResponse,1,1,vhSocket:GET-BYTES-AVAILABLE()).
- vcWebResp = vcWebResp + GET-STRING(mResponse,1).
- END.
- /*
- *PUT HERE THE CODE TO MANIPULATE THE ANSWER
- */
-
- END.
- PROCEDURE PostRequest:
- DEF INPUT PARAMETER postData AS CHAR NO-UNDO.
- /* Parameters to be sent in the format paramName=value¶mName=value¶mName=value */
- DEF VAR vcRequest AS CHAR NO-UNDO.
- DEF VAR mRequest AS MEMPTR NO-UNDO.
- vcRequest = 'GET '
- + PostData
- + ' HTTP/1.1~r~n'
- + 'Host:'
- + vcHost
- + '~r~n'
- + '~r~n'.
- SET-SIZE(mRequest) = 0.
- SET-SIZE(mRequest) = LENGTH(vcRequest) + 1.
- SET-BYTE-ORDER(mRequest) = BIG-ENDIAN.
- PUT-STRING(mRequest,1) = vcRequest .
-
- vhSocket:WRITE(mRequest, 1, LENGTH(vcRequest)).
-
- END PROCEDURE.
|