Sample code for 30+ languages & platforms
DataFlex

QR Code Generator via api.qrserver.com REST API

See more HTTP Examples

Demonstrates how to generate a QR code using the api.qrserver.com REST API service.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoHttp
    Variant vQueryParams
    Handle hoQueryParams
    Variant vResp
    Handle hoResp
    Variant vBd
    Handle hoBd
    String sTemp1
    Integer iTemp1

    Move False To iSuccess

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

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

    // Send the following GET request to get a binary response.
    // The body of the binary response contains the image data for the QR code.
    // https://api.qrserver.com/v1/create-qr-code/?data=[URL-encoded-text]&size=[pixels]x[pixels]

    Get Create (RefClass(cComChilkatJsonObject)) To hoQueryParams
    If (Not(IsComObjectCreated(hoQueryParams))) Begin
        Send CreateComObject of hoQueryParams
    End
    Get ComUpdateString Of hoQueryParams "data" "Hello World" To iSuccess
    Get ComUpdateString Of hoQueryParams "size" "100x100" To iSuccess

    // Get a PNG file..
    // Possible formats are:
    // png
    // gif
    // jpeg
    // jpg
    // svg
    // eps
    // Case matters.  Use lowercase.
    Get ComUpdateString Of hoQueryParams "format" "png" To iSuccess

    // Send the GET request to an endpoint.
    // Chilkat will add the url-encoded query params passed in the JSON.
    Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
    If (Not(IsComObjectCreated(hoResp))) Begin
        Send CreateComObject of hoResp
    End
    Get pvComObject of hoQueryParams to vQueryParams
    Get pvComObject of hoResp to vResp
    Get ComHttpParams Of hoHttp "GET" "https://api.qrserver.com/v1/create-qr-code/" vQueryParams vResp To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Did it succeed?
    Get ComStatusCode Of hoResp To iTemp1
    If (iTemp1 <> 200) Begin
        // The response body, if anything, would not be the image data, but would likely be the error text (or HTML, or whatever...)
        Get ComBodyStr Of hoResp To sTemp1
        Showln sTemp1
        Get ComStatusCode Of hoResp To iTemp1
        Showln "Response status = " iTemp1
        Showln "Failed."
        Procedure_Return
    End

    // Success if we get here..
    // Save the binary body as the PNG file, or you can get the bytes of the PNG..
    Get ComSaveBodyBinary Of hoResp "c:/temp/qa_output/qr_code.png" To iSuccess

    // Or get the bytes:
    Get Create (RefClass(cComChilkatBinData)) To hoBd
    If (Not(IsComObjectCreated(hoBd))) Begin
        Send CreateComObject of hoBd
    End
    Get pvComObject of hoBd to vBd
    Get ComGetBodyBd Of hoResp vBd To iSuccess
    // Use the bytes in bd...
    // See the online reference documentation for the function to access the bytes directly.

    Showln "Success."


End_Procedure