When WebAddMultiPart or WebAddMultiPartFromeFile is called, the passed data is stored in lists. When WebPostMultiPart is called, these lists are then merged with a unique boundary and transferred to the server using WebUrlPostBin.
WebAPI.bdh
WebAddMultiPartFromFile ( in sBodyHeader : string,
in sFileName : string );
none
| Parameter | Description |
|---|---|
| sBodyHeader | Auxiliary information that may be required when unpacking or processing the object, for example Content-Type, Content-Transfer-Encoding, Content-ID. Each line must end with \r\n. |
| sFileName | The file name of the document. |
dcltrans
transaction TMultiPartRelated
var
sMultiPartHeader: string;
sMultiPartData: string;
begin
// usage:
//
// WebAddMultiPart(bodyheader, bodydata)
// WebAddMultiPartFromFile(bodyheader, filename)
// WebPostMultiPart("https://...", "multipart/related; type=\"text/xml\"");
//
// where bodyheader is e.g.:
//
// Content-Type: text/xml; charset=UTF-8
// Content-Transfer-Encoding: 8bit
// Content-ID: <rootpart@soapui.org>
//
// and bodydata is
// o) in case of WebAddMultiPart, e.g.:
//
// <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:kun="http://services.dst.baintern.de/wsdl/basis/dokumentenmgmt/KundenBescheideAblageServiceMessages_V_1" xmlns:bes="http://services.dst.baintern.de/types/basis/dokumentenmgmt/BescheidDokumenteEinstellen_StatusPerDateitransferDTOType_v_1" xmlns:all="http://services.dst.baintern.de/types/basis/dokumentenmgmt/AllgemeinDTOType_v_1">
// ...
// </soapenv:Envelope>
//
// o) in case of WebAddMultiPartFromFile the filename of the document to upload, e.g. "1_Bescheid.zip"
//sample 1, doing a 4 part request:
sMultiPartHeader := "Content-Type: text/plain\r\n";
sMultiPartData := "This is my first text\r\n";
WebAddMultiPart(sMultiPartHeader, sMultiPartData);
sMultiPartHeader := "Content-Type: application/octet-stream\r\n";
sMultiPartData := "\h0102030405060708090A0B0C0D0E0F0D0A";
WebAddMultiPart(sMultiPartHeader, sMultiPartData);
sMultiPartHeader := "Content-Type: text/plain\r\n";
sMultiPartData := "This is my second text\r\n";
WebAddMultiPart(sMultiPartHeader, sMultiPartData);
sMultiPartHeader := "Content-Type: text/xml\r\n";
sMultiPartData := "<xml>This is xml</xml>\r\n";
WebAddMultiPart(sMultiPartHeader, sMultiPartData);
sMultiPartHeader := "Content-Type: text/plain\r\nContent-Disposition: attachment; name=\"simpletext.txt\"\r\n";
sMultiPartData := "simpletext.txt";
WebAddMultiPartFromFile(sMultiPartHeader, sMultiPartData);
WebPostMultiPart("http://demo.borland.com/testsite/rawdata2html.asp", "multipart/related");
//sample 2:
//throws an error as no WebAddMultiPart was specified
WebPostMultiPart("https://demo.borland.com/testsite/svars.asp", "x");
//sample 3:
// throws an error as the file is not existent (in Silk Performer's search scope)
sMultiPartHeader:=
"Content-Type: application/zip\r\n"
"Content-Disposition: attachment; name=\"test.zip\"\r\n";
WebAddMultiPartFromFile(sMultiPartHeader, "test.zip");
WebPostMultiPart("http://demo.borland.com/testsite/rawdata2html.asp", "multipart/related");
end TMultiPartRelated;