Sample code for 30+ languages & platforms
DataFlex

HTTP Request Boundary Property

Explains and demonstrates the HTTP request Boundary property. For multipart HTTP requests, Chilkat auto-generates a boundary string when the Boundary property is left unset (or empty). For example:
POST /something HTTP/1.1
Content-Type: multipart/form-data; boundary=------------090207000006060206010508
Host: domain
Content-Length: 378

--------------090207000006060206010508
Content-Disposition: form-data; name="fileA"; filename="fileA.txt"
Content-Type: text/plain

This is the contents of file A
--------------090207000006060206010508
Content-Disposition: form-data; name="fileB"; filename="fileB.txt"
Content-Type: text/plain

This is the contents of file B
--------------090207000006060206010508--

If the Boundary property is set, then Chilkat uses it. For example, if the Boundary property is set to "ABC123HELLOWORLD"
POST /something HTTP/1.1
Content-Type: multipart/form-data; boundary=ABC123HELLOWORLD
Host: domain
Content-Length: 318

--ABC123HELLOWORLD
Content-Disposition: form-data; name="fileA"; filename="fileA.txt"
Content-Type: text/plain

This is the contents of file A
--ABC123HELLOWORLD
Content-Disposition: form-data; name="fileB"; filename="fileB.txt"
Content-Type: text/plain

This is the contents of file B
--ABC123HELLOWORLD--

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoReq
    Boolean iSuccess
    String sTemp1

    Get Create (RefClass(cComChilkatHttpRequest)) To hoReq
    If (Not(IsComObjectCreated(hoReq))) Begin
        Send CreateComObject of hoReq
    End

    Set ComHttpVerb Of hoReq To "POST"
    Set ComPath Of hoReq To "/something"
    Set ComContentType Of hoReq To "multipart/form-data"

    Get ComAddStringForUpload Of hoReq "fileA" "fileA.txt" "This is the contents of file A" "utf-8" To iSuccess
    Get ComAddStringForUpload Of hoReq "fileB" "fileB.txt" "This is the contents of file B" "utf-8" To iSuccess

    // When the Boundary property is empty (has not yet been set)
    // Chilkat auto-generates a random boundary for the request.
    // This should almost always be sufficient.
    // For example, one can see the generated boundary here:
    Get ComGenerateRequestText Of hoReq To sTemp1
    Showln sTemp1

    // If the Boundary property is set to a specific string, then the
    // request will use it:
    Set ComBoundary Of hoReq To "ABC123HELLOWORLD"
    Get ComGenerateRequestText Of hoReq To sTemp1
    Showln sTemp1


End_Procedure