Sample code for 30+ languages & platforms
DataFlex

MedTunnel: Get Message Attachment

See more MedTunnel Examples

Get a specific attachment of a message. The MessageId and AttachmentId are obtained from the "Get Mailbox Messages" example.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoHttp
    Variant vBd
    Handle hoBd
    Integer iRespStatusCode
    String sTemp1

    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(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End

    // Implements the following CURL command:

    // curl -X GET -k 
    //         -H "Authorization:PutAuthorizationTokenHere" 
    //         https://server.medtunnel.com/medtunnelmsg/api/Message/GetAttachment?messageid=989448&attachmentid=424857&setreadflag=false

    // Use the following online tool to generate HTTP code from a CURL command
    // Convert a cURL Command to HTTP Source Code

    Send ComSetRequestHeader To hoHttp "Authorization" "PutAuthorizationTokenHere"

    // The messageId and attachmentId are contained in the response from reading the mailbox messages.
    Get ComSetUrlVar Of hoHttp "messageId" "989448" To iSuccess
    Get ComSetUrlVar Of hoHttp "attachmentId" "424857" To iSuccess
    Get ComSetUrlVar Of hoHttp "setReadFlag" "false" To iSuccess

    // Download the attachment data into bd.
    Get Create (RefClass(cComChilkatBinData)) To hoBd
    If (Not(IsComObjectCreated(hoBd))) Begin
        Send CreateComObject of hoBd
    End
    Get pvComObject of hoBd to vBd
    Get ComQuickGetBd Of hoHttp "https://server.medtunnel.com/MedTunnelMsg/api/Message/GetAttachment?messageid={$messageId}&attachmentid={$attachmentId}&setreadflag={$setReadFlag}" vBd To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComLastStatus Of hoHttp To iRespStatusCode
    Showln "Response Status Code = " iRespStatusCode
    If (iRespStatusCode >= 400) Begin
        Showln "Response Header:"
        Get ComLastHeader Of hoHttp To sTemp1
        Showln sTemp1
        // For errors, the response body contains an error message instead of the actual attachment data.
        Showln "Response Body:"
        Get ComGetString Of hoBd "utf-8" To sTemp1
        Showln sTemp1
        Showln "Failed."
        Procedure_Return
    End

    // Save the attachment data.
    // The attachment filename is also contained in the response from reading the mailbox messages.
    Get ComWriteFile Of hoBd "qa_output/starfish.jpg" To iSuccess
    If (iSuccess <> True) Begin
        Showln "Failed to save attachment file."
    End
    Else Begin
        Showln "Success."
    End



End_Procedure