PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkRest.pb"
IncludeFile "CkBinData.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
; 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.
CkRest::setCkPartSelector(rest, "1")
CkRest::ckAddHeader(rest,"Content-Disposition","form-data; name=" + Chr(34) + "field1" + Chr(34))
CkRest::ckAddHeader(rest,"Content-Type","image/png")
; Set the binary body of the selected part from a BinData.
bdBody.i = CkBinData::ckCreate()
If bdBody.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
bLoaded.i = CkBinData::ckLoadFile(bdBody,"qa_data/image.png")
If bLoaded <> 1
Debug "Failed to load the part body file."
CkRest::ckDispose(rest)
CkBinData::ckDispose(bdBody)
ProcedureReturn
EndIf
success = CkRest::ckSetMultipartBodyBd(rest,bdBody)
If success = 0
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
CkBinData::ckDispose(bdBody)
ProcedureReturn
EndIf
responseText.s = CkRest::ckFullRequestMultipart(rest,"POST","/api/upload")
If CkRest::ckLastMethodSuccess(rest) = 0
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
CkBinData::ckDispose(bdBody)
ProcedureReturn
EndIf
Debug responseText
CkRest::ckDispose(rest)
CkBinData::ckDispose(bdBody)
ProcedureReturn
EndProcedure