Sample code for 30+ languages & platforms
PureBasic

Set a Multipart Part Body from a StringBuilder

See more REST Examples

Demonstrates Rest.SetMultipartBodySb, which sets the text body of the selected multipart part from a StringBuilder.

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 PureBasic Downloads

PureBasic
IncludeFile "CkRest.pb"
IncludeFile "CkStringBuilder.pb"

Procedure ChilkatExample()

    success.i = 0

    rest.i = CkRest::ckCreate()
    If rest.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    bTls.i = 1
    bAutoReconnect.i = 1
    success = CkRest::ckConnect(rest,"example.com",443,bTls,bAutoReconnect)
    If success = 0
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        ProcedureReturn
    EndIf

    ;  Select the multipart part to build, and set its header fields.
    CkRest::setCkPartSelector(rest, "1")
    CkRest::ckAddHeader(rest,"Content-Disposition","form-data; name=" + Chr(34) + "field1" + Chr(34))
    CkRest::ckAddHeader(rest,"Content-Type","application/json")

    ;  Set the text body of the selected part from a StringBuilder.
    sbBody.i = CkStringBuilder::ckCreate()
    If sbBody.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkStringBuilder::ckAppend(sbBody,"{ " + Chr(34) + "key" + Chr(34) + ": " + Chr(34) + "value" + Chr(34) + " }")
    success = CkRest::ckSetMultipartBodySb(rest,sbBody)
    If success = 0
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        CkStringBuilder::ckDispose(sbBody)
        ProcedureReturn
    EndIf

    responseText.s = CkRest::ckFullRequestMultipart(rest,"POST","/api/upload")
    If CkRest::ckLastMethodSuccess(rest) = 0
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        CkStringBuilder::ckDispose(sbBody)
        ProcedureReturn
    EndIf

    Debug responseText


    CkRest::ckDispose(rest)
    CkStringBuilder::ckDispose(sbBody)


    ProcedureReturn
EndProcedure