Sample code for 30+ languages & platforms
Visual FoxPro

Set a Multipart Part Body from BinData

See more REST Examples

Demonstrates Rest.SetMultipartBodyBd, which sets the binary body of the selected multipart part from a BinData.

The file paths are relative to the application's current working directory. Absolute paths may also be used. Supply the paths appropriate to your own environment.

Background. A multipart request is assembled part by part: the part selector chooses the part being built, header fields describe it, and a SetMultipartBody method supplies its content. The request is then sent with a multipart send or full-request method.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loRest
LOCAL lnBTls
LOCAL lnBAutoReconnect
LOCAL loBdBody
LOCAL lnBLoaded
LOCAL lcResponseText

lnSuccess = 0

loRest = CreateObject('Chilkat.Rest')
lnBTls = 1
lnBAutoReconnect = 1
lnSuccess = loRest.Connect("example.com",443,lnBTls,lnBAutoReconnect)
IF (lnSuccess = 0) THEN
    ? loRest.LastErrorText
    RELEASE loRest
    CANCEL
ENDIF

*  The file paths are relative to the application's current working directory.  Absolute paths
*  may also be used.  Supply the paths appropriate to your own environment.

*  Select the multipart part to build, and set its header fields.
loRest.PartSelector = "1"
loRest.AddHeader("Content-Disposition",'form-data; name="field1"')
loRest.AddHeader("Content-Type","image/png")

*  Set the binary body of the selected part from a BinData.
loBdBody = CreateObject('Chilkat.BinData')
lnBLoaded = loBdBody.LoadFile("qa_data/image.png")
IF (lnBLoaded <> 1) THEN
    ? "Failed to load the part body file."
    RELEASE loRest
    RELEASE loBdBody
    CANCEL
ENDIF

lnSuccess = loRest.SetMultipartBodyBd(loBdBody)
IF (lnSuccess = 0) THEN
    ? loRest.LastErrorText
    RELEASE loRest
    RELEASE loBdBody
    CANCEL
ENDIF

lcResponseText = loRest.FullRequestMultipart("POST","/api/upload")
IF (loRest.LastMethodSuccess = 0) THEN
    ? loRest.LastErrorText
    RELEASE loRest
    RELEASE loBdBody
    CANCEL
ENDIF

? lcResponseText

RELEASE loRest
RELEASE loBdBody