Sample code for 30+ languages & platforms
DataFlex

HTTP PUT JSON

See more HTTP Examples

Demonstrates how to send a JSON PUT and get the JSON response body.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoReq
    Handle hoHttp
    String sJsonText
    Variant vResp
    Handle hoResp
    String sTemp1
    Integer iTemp1

    Move False To iSuccess

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

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

    // The PUT request to be sent will look like this:

    // PUT /request HTTP/1.1
    // Content-Type: application/jsonrequest
    // Cookie: JSESSIONID=1234
    // Content-Encoding: identity
    // Host: json.penzance.org
    // Accept: application/jsonrequest
    // Accept-Encoding:
    // Content-Length: 72
    // 
    // {"user":"doctoravatar@penzance.com","forecast":7,"t":"vlIj","zip":94089}

    // First, remove default header fields that would be automatically
    // sent.  (These headers are harmless, and shouldn't need to 
    // be suppressed, but just in case...)
    Set ComAcceptCharset Of hoHttp To ""
    Set ComUserAgent Of hoHttp To ""
    Set ComAcceptLanguage Of hoHttp To ""

    // Suppress the Accept-Encoding header by disallowing 
    // a gzip response:
    Set ComAllowGzip Of hoHttp To False

    // If a Cookie needs to be added...
    Send ComSetRequestHeader To hoHttp "Cookie" "JSESSIONID=1234"

    // Add the Content-Encoding: identity header.
    Send ComSetRequestHeader To hoHttp "Content-Encoding" "identity"

    // Modify the default "Accept" header:
    Set ComAccept Of hoHttp To "application/jsonrequest"

    Move '{"user":"doctoravatar@penzance.com","forecast":7,"t":"vlIj","zip":94089}' To sJsonText

    // IMPORTANT: Make sure to change the URL, JSON text,
    // and other data items to your own values.  The URL used
    // in this example will not actually work.

    Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
    If (Not(IsComObjectCreated(hoResp))) Begin
        Send CreateComObject of hoResp
    End
    Get pvComObject of hoResp to vResp
    Get ComHttpStr Of hoHttp "PUT" "http://json.penzance.org/request" sJsonText "utf-8" "application/jsonrequest" vResp To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComStatusCode Of hoResp To iTemp1
    Showln "Response status code: " iTemp1
    Showln "Response JSON:"
    Get ComBodyStr Of hoResp To sTemp1
    Showln sTemp1


End_Procedure