DataFlex
DataFlex
Add Data to multipart/form-data Request
See more HTTP Examples
Demonstrates how to add content (such as a JPG, PDF, XML, etc.) to multipart/form-data requests.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoReq
Variant vBd
Handle hoBd
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(cComChilkatHttpRequest)) To hoReq
If (Not(IsComObjectCreated(hoReq))) Begin
Send CreateComObject of hoReq
End
Set ComHttpVerb Of hoReq To "POST"
Set ComContentType Of hoReq To "multipart/form-data"
Set ComPath Of hoReq To "/xyz/something"
Send ComAddParam To hoReq "param1" "value1"
Send ComAddParam To hoReq "param2" "value2"
// Add some small files to the request. (Small so we can see what the full request looks like without too much data..)
Get Create (RefClass(cComChilkatBinData)) To hoBd
If (Not(IsComObjectCreated(hoBd))) Begin
Send CreateComObject of hoBd
End
Get ComLoadFile Of hoBd "qa_data/jpg/starfish20.jpg" To iSuccess
Get pvComObject of hoBd to vBd
Get ComAddBdForUpload Of hoReq "starfish20" "starfish20.jpg" vBd "image/jpeg" To iSuccess
Get ComLoadFile Of hoBd "qa_data/pdf/helloWorld.pdf" To iSuccess
Get pvComObject of hoBd to vBd
Get ComAddBdForUpload Of hoReq "helloWorld" "helloWorld.pdf" vBd "application/pdf" To iSuccess
Get ComLoadFile Of hoBd "qa_data/xml/tinyA.xml" To iSuccess
Get pvComObject of hoBd to vBd
Get ComAddBdForUpload Of hoReq "tinyA" "tinyA.xml" vBd "text/xml" To iSuccess
// This HTTP request contains binary data, so we cannot call GenerateRequestText
// to examine it as a string. We can instead call GenerateRequestFile
// to write the request to a file and then examine using a hex editor,
// or an editor that is capable of handling null bytes and non-printable chars (perhaps by displaying "?" chars instead).
Get ComGenerateRequestFile Of hoReq "qa_output/multipartFormDataRequest.bin" To iSuccess
Showln "OK."
// This is the HTTP multipart/form-data request built by the above code:
// POST /xyz/something HTTP/1.1
// Host: domain
// Content-Type: multipart/form-data; boundary=------------090708030009010000030901
// Content-Length: 2220
//
// --------------090708030009010000030901
// Content-Disposition: form-data; name="param1"
//
// value1
// --------------090708030009010000030901
// Content-Disposition: form-data; name="param2"
//
// value2
// --------------090708030009010000030901
// Content-Disposition: form-data; name="starfish20"; filename="starfish20.jpg"
// Content-Type: image/jpeg
//
// JPEG DATA HERE...
// --------------090708030009010000030901
// Content-Disposition: form-data; name="helloWorld"; filename="helloWorld.pdf"
// Content-Type: application/pdf
//
// PDF DATA HERE...
// --------------090708030009010000030901
// Content-Disposition: form-data; name="tinyA"; filename="tinyA.xml"
// Content-Type: text/xml
//
// XML DATA HERE...
// --------------090708030009010000030901--
//
End_Procedure