Sample code for 30+ languages & platforms
DataFlex

HTTP POST x-www-form-urlencoded

Demonstrates how to send a simple x-www-form-urlencoded POST.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoHttp
    String sJsonStr
    Variant vReq
    Handle hoReq
    Variant vResp
    Handle hoResp
    String sResponseBody
    Handle hoFac
    String sFilepath
    String sTemp1
    Integer iTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End

    Move "{ some json ... }" To sJsonStr

    Get Create (RefClass(cComChilkatHttpRequest)) To hoReq
    If (Not(IsComObjectCreated(hoReq))) Begin
        Send CreateComObject of hoReq
    End
    // This query parameter just happens to be named "json" and contains JSON text.
    Send ComAddParam To hoReq "json" sJsonStr

    // We can optionally add more query parameters. 
    Send ComAddParam To hoReq "abc" "123"
    Send ComAddParam To hoReq "xml" "<abc>123</abc>"

    // Note: Just because we passed a query param named "json" or "xml" means nothing special.  It's still just
    // a name=value query parameter..

    Set ComHttpVerb Of hoReq To "POST"
    Set ComContentType Of hoReq To "application/x-www-form-urlencoded"

    Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
    If (Not(IsComObjectCreated(hoResp))) Begin
        Send CreateComObject of hoResp
    End
    Get pvComObject of hoReq to vReq
    Get pvComObject of hoResp to vResp
    Get ComHttpReq Of hoHttp "http://example.com/xyz/connect/report" vReq vResp To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComStatusCode Of hoResp To iTemp1
    If (iTemp1 <> 200) Begin
        Showln "Hey, I didn't receive the expected response status code!"
        Get ComStatusCode Of hoResp To iTemp1
        Showln "status code = " iTemp1
    End

    // Could be error text if the status code wasn't what we expected, or could be the response
    // body you're seeking..
    Get ComBodyStr Of hoResp To sResponseBody
    Showln sResponseBody

    Get Create (RefClass(cComCkFileAccess)) To hoFac
    If (Not(IsComObjectCreated(hoFac))) Begin
        Send CreateComObject of hoFac
    End
    Move "some file path" To sFilepath
    Get ComWriteEntireTextFile Of hoFac sFilepath sResponseBody "utf-8" False To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoFac To sTemp1
        Showln sTemp1
    End



End_Procedure