I’m trying to post a multipart/form request like so:
const baseUrl = 'https://api-int.nmlv.nml.com/v1/aca-cip/documents';
const params = {
headers: {
'Content-Type': ''multipart/form-data",
'x-nm-nm_login_id': 'acakvlrt',
"x-nm-request-id": "k6loadtest",
'apikey': `${__ENV.ACA_APIKEY}`
}
};
// metadata for multi-part form to create a document
const metaData = {
"authLevelCde": authLevelCode,
"aclName": authLevelCode,
"attributes": {
"docDescrCde": 5000
},
"singleValueAttributes": {
"docDescrCde": 5000
},
"multiValueAttributes": {
}
}
const formData = new FormData();
formData.append('metadata', metaData);
const randomUUID = uuidv4();
formData.append('fileSize', randomUUID.length);
formData.append('file', http.file(randomUUID, 'myuuid.txt', 'text/plain'));
const res = http.post(baseUrl, formData.body(), params );
console.log(res);
but the post returns a stats 500, and the res.error, error_code, and request fields are:
"error": "",
"error_code": 1500,
"request": {
"method": "POST",
"url": "https://api-int.nmlv.nml.com/v1/aca-cip/documents",
"headers": {
"X-Nm-Request-Id": [
"k6loadtest"
],
"Apikey": [
"xxxxxxxxxxxxxxxx"
],
"User-Agent": [
"k6/0.50.0 (https://k6.io/)"
],
"Content-Type": [
"multipart/form-data"
],
"X-Nm-Nm_login_id": [
"acakvlrt"
]
},
"body": "--------RWWorkerFormDataBoundary0.46vp38bxrw9\r\nContent-Disposition: form-data; name=\"metadata\"\r\nContent-Type: application/octet-stream\r\n\r\n\r\n--------RWWorkerFormDataBoundary0.46vp38bxrw9\r\nContent-Disposition: form-data; name=\"fileSize\"\r\nContent-Type: application/octet-stream\r\n\r\n\r\n--------RWWorkerFormDataBoundary0.46vp38bxrw9\r\nContent-Disposition: form-data; name=\"file\"; filename=\"myuuid.txt\"\r\nContent-Type: text/plain\r\n\r\nd1248d6d-763d-4a63-83ee-c2fb3b7cb6e2\r\n--------RWWorkerFormDataBoundary0.46vp38bxrw9--\r\n",
"cookies": {}
}
I see two possible clues in the res.request.body field:
- the ‘metadata’ form field is cited as having content-type ‘application/octet-stream’, whereas my µservice expects it to be ‘application/json’;
- the ‘fileSize’ form field is also cited as having content-type app/octet-stream, but i mean for it to be an integer.
Any idea what I’m doing wrong? Thanks!
3 posts - 2 participants