Sample code for 30+ languages & platforms
Xbase++

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 Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oHttp
LOCAL oBd
LOCAL nRespStatusCode

nSuccess := 0

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

oHttp := CreateObject("Chilkat.Http")

//  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

oHttp:SetRequestHeader("Authorization", "PutAuthorizationTokenHere")

//  The messageId and attachmentId are contained in the response from reading the mailbox messages.
oHttp:SetUrlVar("messageId", "989448")
oHttp:SetUrlVar("attachmentId", "424857")
oHttp:SetUrlVar("setReadFlag", "false")

//  Download the attachment data into bd.
oBd := CreateObject("Chilkat.BinData")
nSuccess := oHttp:QuickGetBd("https://server.medtunnel.com/MedTunnelMsg/api/Message/GetAttachment?messageid={$messageId}&attachmentid={$attachmentId}&setreadflag={$setReadFlag}", oBd)
IF (nSuccess == 0)
    ? oHttp:LastErrorText
    oHttp:destroy()
    oBd:destroy()
    RETURN
ENDIF

nRespStatusCode := oHttp:LastStatus
? "Response Status Code = " + Str(nRespStatusCode)
IF (nRespStatusCode >= 400)
    ? "Response Header:"
    ? oHttp:LastHeader
    //  For errors, the response body contains an error message instead of the actual attachment data.
    ? "Response Body:"
    ? oBd:GetString("utf-8")
    ? "Failed."
    oHttp:destroy()
    oBd:destroy()
    RETURN
ENDIF

//  Save the attachment data.
//  The attachment filename is also contained in the response from reading the mailbox messages.
nSuccess := oBd:WriteFile("qa_output/starfish.jpg")
IF (nSuccess != 1)
    ? "Failed to save attachment file."
ELSE
    ? "Success."
ENDIF

oHttp:destroy()
oBd:destroy()