Hello together,
I'm having problems with uploading files to a RESTful Web-Service using UHTTP→SEND. The given api-function has to be called like this little php-Code snippet:
$request = new HttpRequest();
$request->setUrl('https://arap043v0l0t00.intern.arz-emmendingen.de:8443/server/le/document/upload');
$request->setMethod(HTTP_METH_POST);
$request->setHeaders(array(
  'Postman-Token' => 'de0d98e4-78ac-4049-9bfe-09262362554e',
  'cache-control' => 'no-cache',
  'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJMbDE0M25KSmdIZGdUUHBhTmk0eFFZMVRUcWd6Y2xmT19lSnVCX2gzY19vIn0.eyJqdGkiOiI0Zjg1OGY2Zi0wMDIzLTQzNTQtOTI2Yi1jMTBiMTBiNjJkMzUiLCJleHAiOjE1NDQ1MjI1NzIsIm5iZiI6MCwiaWF0IjoxNTQ0NTIyMjcyLCJpc3MiOiJodHRwczovL2FyYXAwNDN2MGwwdDAwLmludGVybi5hcnotZW1tZW5kaW5nZW4uZGU6OTQ0My9hdXRoL3JlYWxtcy9oZWxpY2F0d2ViLWV4dGVybmFsIiwiYXVkIjoibGUtc3lzdGVtLWNsaWVudC1hcnplLWFkbWluIiwic3ViIjoiOTRiNzZlOWMtYzgyYS00MjZhLWJkNTQtM2NiYjJjYTE3ODgwIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoibGUtc3lzdGVtLWNsaWVudC1hcnplLWFkbWluIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiMjY3MmZkZjUtZTEzOS00MTMzLWFlNTEtM2Q2NTExODEzOTI2IiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6W10sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJST0xFX1VTRVIiXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJjbGllbnRIb3N0IjoiMTAuMzEuMTE4LjExNCIsImNsaWVudElkIjoibGUtc3lzdGVtLWNsaWVudC1hcnplLWFkbWluIiwicHJpbmNpcGFsaWQiOiJyb1c2RnVBRlRoQ1dRb1V5TklGTWRLIiwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LWxlLXN5c3RlbS1jbGllbnQtYXJ6ZS1hZG1pbiIsImNsaWVudEFkZHJlc3MiOiIxMC4zMS4xMTguMTE0IiwiZW1haWwiOiJzZXJ2aWNlLWFjY291bnQtbGUtc3lzdGVtLWNsaWVudC1hcnplLWFkbWluQHBsYWNlaG9sZGVyLm9yZyJ9.Z2qCao-lCe8jonVcNMe7YGid1XEgqkCPS_prwn8VVM5kxDKH37DZe7ugcaxfKV57wmkpS4LaJKhjzYzivIx1cF1zpq0wiIxCIu3yu8pXm55n5XrskbQAOLIQQXjQo7eftf_OsV4_OUxHDJF-2Y3v1CGqZaPRHXN4rmkdzlEXLzs1OAt9UtZJIVSzosyArblHhtDT-QCBHb_kezCWoJqql3xELHXDHR4eoEcdENSxeEFW5BG8lAE_lRW25X6d9CUVr1NU3kYP26kg-Mutw4cqPHqaA23aLESeBqQE7Llb1EuT1Q68qxyztSYRxrZEBLR0Oj4YGwLKDdhEBiGvI2Uf3A',
  'content-type' => 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW'
));
$request->setBody('------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="documentType"
Rechnung
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="description"
Dokument
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="uploadFile"; filename="U:\\\\le-portal\\\\20091020_Fit_und_entspannt.pdf"
Content-Type: application/pdf
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="externeVorgangsnummer"
df47f60f-b341-4f67-9dc9-71dee8896751
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="referenceIds"
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="vorgangsId"
1b424662-3d6e-4571-b8b2-dd269f64a019
------WebKitFormBoundary7MA4YWxkTrZu0gW--');
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}My Uniface-Code:
sRESTService = "/server/le/document/upload"
sUrl = $concat($S_LEP_FRONTEND_HOST$, sRESTService)
sMethode = "POST" 
sUser = ""
sPasswort = ""
putitem/id sHeaders, "Authorization", $concat("Bearer", " ", sAccessToken)
putitem/id sHeaders, "cache-control", "no-cache, no-store, max-age=0, must-revalidate"
putitem/id sHeaders, "connection", "close"
putitem/id sHeaders, "transfer-encoding", "chunked"
putitem/id sHeaders, "Content-Type", "multipart/form-data; boundary=----%%sUUID%%%"
sContent = ""
sContent = $concat(sContent, "------", sUUID, "%%^")
sContent = $concat(sContent, "Content-Disposition: form-data; name=%%"documentType%%" ", "%%^%%^", ps_DocumentType, "%%^")
sContent = $concat(sContent, "------", sUUID, "%%^")
sContent = $concat(sContent, "Content-Disposition: form-data; name=%%"description%%" ", "%%^%%^", ps_Description, "%%^")
sContent = $concat(sContent, "------", sUUID, "%%^")
sContent = $concat(sContent, "Content-Disposition: form-data; name=%%"uploadFile%%"; filename=%%"", ps_UploadFile, "%%"", "%%^")
sContent = $concat(sContent, "Content-Type: application/pdf", "%%^%%^")
sContent = $concat(sContent, "------", sUUID, "%%^")
sContent = $concat(sContent, "Content-Disposition: form-data; name=%%"externeVorgangsnummer%%"", "%%^%%^", ps_ExterneVorgangsnummer, "%%^")
sContent = $concat(sContent, "------", sUUID, "%%^")
sContent = $concat(sContent, "Content-Disposition: form-data; name=%%"vorgangsId%%"", "%%^%%^", ps_VorgangsId, "%%^")
sContent = $concat(sContent, "------", sUUID, "%%^")
sContent = $concat(sContent, "Content-Disposition: form-data; name=%%"referenceIds%%"", "%%^%%^", ps_ReferenceIds, "%%^")
sContent = $concat(sContent, "------", sUUID, "--", "%%^")
nRetCode = hUhttp->SEND(sUrl, sMethode, sUser, sPasswort, sHeaders, sContent, sReturn)
It produces the following content to be sent to the Web-Service.
"------WebKitFormBoundaryA49805F10B0E4A3CB3F15B9AFD5947D7 Content-Disposition: form-data; name="documentType" Rechnung ------WebKitFormBoundaryA49805F10B0E4A3CB3F15B9AFD5947D7 Content-Disposition: form-data; name="description" Dokument ------WebKitFormBoundaryA49805F10B0E4A3CB3F15B9AFD5947D7 Content-Disposition: form-data; name="uploadFile"; filename="U:\\\\le-portal\\\\20091020_Fit_und_entspannt.pdf" Content-Type: application/pdf ------WebKitFormBoundaryA49805F10B0E4A3CB3F15B9AFD5947D7 Content-Disposition: form-data; name="externeVorgangsnummer" df47f60f-b341-4f67-9dc9-71dee8896751 ------WebKitFormBoundaryA49805F10B0E4A3CB3F15B9AFD5947D7 Content-Disposition: form-data; name="vorgangsId" 1b424662-3d6e-4571-b8b2-dd269f64a019 ------WebKitFormBoundaryA49805F10B0E4A3CB3F15B9AFD5947D7 Content-Disposition: form-data; name="referenceIds" ------WebKitFormBoundaryA49805F10B0E4A3CB3F15B9AFD5947D7-- "
I've tested this Web-Service with tools like postman, and it works. Calling this Web-Service with Uniface results in "HTTP/1.1 200" (nice), but only some bytes of my message arrive. In my particular case the PDF to be uploaded has a length of 382478 Bytes, but the Web-Service receives only 158 bytes of my content.
Does anyone has an idea to solve my problem?
Thanks in advance,
Michael.

