Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

POST crashes server with "unknown transfer-encoding" #56

Closed
bryanlarsen opened this issue Sep 29, 2020 · 3 comments · Fixed by #67
Closed

POST crashes server with "unknown transfer-encoding" #56

bryanlarsen opened this issue Sep 29, 2020 · 3 comments · Fixed by #67

Comments

@bryanlarsen
Copy link

Using har-to-k6 and k6 results in one of the POST's crashing the server with an "unknown transfer-encoding" error. The HAR file does not contain any Content-Transfer-Encoding headers in the postData.text field yet har-to-k6 includes this header on all fields in the multipart/form-data body.

@bryanlarsen
Copy link
Author

It also adds a bunch of extra "=\r\n" into the content.

@bryanlarsen
Copy link
Author

example HAR:

    "postData": {
      "mimeType": "multipart/form-data; boundary=----WebKitFormBoundaryZHjkZUy6WjLNlVxF",
      "text": "------WebKitFormBoundaryZHjkZUy6WjLNlVxF\r\nContent-Disposition: form-data; name=\"orgId\"\r\n\r\n50b8fb6d-acbf-4367-a425-3b7528062492\r\n------WebKitFormBoundaryZHjkZUy6WjLNlVxF\r\nContent-Disposition: form-data; name=\"productId\"\r\n\r\nbfc5b7b0-a966-4af5-9e18-c2407fe60247\r\n------WebKitFormBoundaryZHjkZUy6WjLNlVxF\r\nContent-Disposition: form-data; name=\"productVersion\"\r\n\r\ntest_version\r\n------WebKitFormBoundaryZHjkZUy6WjLNlVxF\r\nContent-Disposition: form-data; name=\"variant\"\r\n\r\n{\"floor\":\"WhiteOak\",\"items\":[{\"id\":\"3d84d450-64e4-46f5-bb3b-e6b5bcc3f468\",\"type\":\"seat\",\"key\":\"standard\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":0,\"y\":0,\"z\":0},\"rotation\":{\"x\":0,\"y\":0,\"z\":0}}},{\"id\":\"033e78d9-124b-4218-9271-f62728be2ca4\",\"type\":\"seat\",\"key\":\"standard\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":0.8864443302154541,\"y\":-6.49076348224753e-9,\"z\":-0.00269298255443573},\"rotation\":{\"x\":180,\"y\":-1.303316725388272e-12,\"z\":180}}},{\"id\":\"95a14793-141d-4ca2-b650-84faa6d97d13\",\"type\":\"side\",\"key\":\"standard\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":0.00009932114335242659,\"y\":0.0003546370717231184,\"z\":-0.4465442895889282},\"rotation\":{\"x\":-8.251924982638163e-30,\"y\":-0.0000018212330390374201,\"z\":5.192092131145556e-22}}},{\"id\":\"dce9a2b1-181c-4926-b411-b27c868916ab\",\"type\":\"side\",\"key\":\"standard\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":0.8870162963867188,\"y\":0.0003545307263266295,\"z\":-0.44654420018196106},\"rotation\":{\"x\":-0.000008651421394828107,\"y\":-0.0000018212326319264208,\"z\":-0.000008651422209050105}}},{\"id\":\"5276bed0-7ac9-4cf4-a082-f861f3d5733a\",\"type\":\"side\",\"key\":\"standard\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":-0.5229693651199341,\"y\":0.0003546573861967772,\"z\":-0.07576591521501541},\"rotation\":{\"x\":0,\"y\":90,\"z\":-9.500163013218065e-14}}},{\"id\":\"a7c67252-cad2-431d-9b3c-2e58c06173a8\",\"type\":\"side\",\"key\":\"standard\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":1.4094135761260986,\"y\":0.0003546444058883935,\"z\":-0.07541840523481369},\"rotation\":{\"x\":0,\"y\":-90,\"z\":-8.672206977964781e-21}}},{\"id\":\"d6a9062b-69ff-4af5-a54b-4643388e6e53\",\"type\":\"seat\",\"key\":\"wedge\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":-3.437708854675293,\"y\":0,\"z\":-2.3981525897979736},\"rotation\":{\"x\":0,\"y\":0,\"z\":0}}},{\"id\":\"758490a3-0d69-477d-ab50-eeeee52b24da\",\"type\":\"side\",\"key\":\"deep\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":-1.0036007165908813,\"y\":0,\"z\":1.4897704124450684},\"rotation\":{\"x\":0,\"y\":0,\"z\":0}}},{\"id\":\"67da5fb9-0231-4104-8def-2fd0a7fc3916\",\"type\":\"side\",\"key\":\"rollArm\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":-1.6337246894836426,\"y\":0,\"z\":1.283305287361145},\"rotation\":{\"x\":0,\"y\":0,\"z\":0}}},{\"id\":\"b2daccaa-b7d7-4162-8c81-b7d109444d8f\",\"type\":\"coaster\",\"key\":\"hickory\",\"position\":{\"translation\":{\"x\":-0.5221635699272156,\"y\":0.002973496913909912,\"z\":-0.31830862164497375},\"rotation\":{\"x\":-3.718647778273515e-21,\"y\":-3.082928596621272e-36,\"z\":-9.500163013218065e-14}}}],\"attachments\":[{\"itemA\":{\"itemId\":\"033e78d9-124b-4218-9271-f62728be2ca4\",\"connectorName\":\"rightFront\"},\"itemB\":{\"itemId\":\"3d84d450-64e4-46f5-bb3b-e6b5bcc3f468\",\"connectorName\":\"rightBack\"}},{\"itemA\":{\"itemId\":\"95a14793-141d-4ca2-b650-84faa6d97d13\",\"connectorName\":\"front\"},\"itemB\":{\"itemId\":\"3d84d450-64e4-46f5-bb3b-e6b5bcc3f468\",\"connectorName\":\"back\"}},{\"itemA\":{\"itemId\":\"dce9a2b1-181c-4926-b411-b27c868916ab\",\"connectorName\":\"left\"},\"itemB\":{\"itemId\":\"95a14793-141d-4ca2-b650-84faa6d97d13\",\"connectorName\":\"right\"}},{\"itemA\":{\"itemId\":\"dce9a2b1-181c-4926-b411-b27c868916ab\",\"connectorName\":\"front\"},\"itemB\":{\"itemId\":\"033e78d9-124b-4218-9271-f62728be2ca4\",\"connectorName\":\"front\"}},{\"itemA\":{\"itemId\":\"5276bed0-7ac9-4cf4-a082-f861f3d5733a\",\"connectorName\":\"front\"},\"itemB\":{\"itemId\":\"3d84d450-64e4-46f5-bb3b-e6b5bcc3f468\",\"connectorName\":\"leftBack\"}},{\"itemA\":{\"itemId\":\"a7c67252-cad2-431d-9b3c-2e58c06173a8\",\"connectorName\":\"front\"},\"itemB\":{\"itemId\":\"033e78d9-124b-4218-9271-f62728be2ca4\",\"connectorName\":\"leftFront\"}},{\"itemA\":{\"itemId\":\"b2daccaa-b7d7-4162-8c81-b7d109444d8f\",\"connectorName\":\"bottom\"},\"itemB\":{\"itemId\":\"5276bed0-7ac9-4cf4-a082-f861f3d5733a\",\"connectorName\":\"topRight\"}}]}\r\n------WebKitFormBoundaryZHjkZUy6WjLNlVxF--\r\n",
      "params": [
       {
        "name": "orgId",
        "value": "50b8fb6d-acbf-4367-a425-3b7528062492"
       },
       {
        "name": "productId",
        "value": "bfc5b7b0-a966-4af5-9e18-c2407fe60247"
       },
       {
        "name": "productVersion",
        "value": "test_version"
       },
       {
        "name": "variant",
        "value": "{\"floor\":\"WhiteOak\",\"items\":[{\"id\":\"3d84d450-64e4-46f5-bb3b-e6b5bcc3f468\",\"type\":\"seat\",\"key\":\"standard\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":0,\"y\":0,\"z\":0},\"rotation\":{\"x\":0,\"y\":0,\"z\":0}}},{\"id\":\"033e78d9-124b-4218-9271-f62728be2ca4\",\"type\":\"seat\",\"key\":\"standard\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":0.8864443302154541,\"y\":-6.49076348224753e-9,\"z\":-0.00269298255443573},\"rotation\":{\"x\":180,\"y\":-1.303316725388272e-12,\"z\":180}}},{\"id\":\"95a14793-141d-4ca2-b650-84faa6d97d13\",\"type\":\"side\",\"key\":\"standard\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":0.00009932114335242659,\"y\":0.0003546370717231184,\"z\":-0.4465442895889282},\"rotation\":{\"x\":-8.251924982638163e-30,\"y\":-0.0000018212330390374201,\"z\":5.192092131145556e-22}}},{\"id\":\"dce9a2b1-181c-4926-b411-b27c868916ab\",\"type\":\"side\",\"key\":\"standard\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":0.8870162963867188,\"y\":0.0003545307263266295,\"z\":-0.44654420018196106},\"rotation\":{\"x\":-0.000008651421394828107,\"y\":-0.0000018212326319264208,\"z\":-0.000008651422209050105}}},{\"id\":\"5276bed0-7ac9-4cf4-a082-f861f3d5733a\",\"type\":\"side\",\"key\":\"standard\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":-0.5229693651199341,\"y\":0.0003546573861967772,\"z\":-0.07576591521501541},\"rotation\":{\"x\":0,\"y\":90,\"z\":-9.500163013218065e-14}}},{\"id\":\"a7c67252-cad2-431d-9b3c-2e58c06173a8\",\"type\":\"side\",\"key\":\"standard\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":1.4094135761260986,\"y\":0.0003546444058883935,\"z\":-0.07541840523481369},\"rotation\":{\"x\":0,\"y\":-90,\"z\":-8.672206977964781e-21}}},{\"id\":\"d6a9062b-69ff-4af5-a54b-4643388e6e53\",\"type\":\"seat\",\"key\":\"wedge\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":-3.437708854675293,\"y\":0,\"z\":-2.3981525897979736},\"rotation\":{\"x\":0,\"y\":0,\"z\":0}}},{\"id\":\"758490a3-0d69-477d-ab50-eeeee52b24da\",\"type\":\"side\",\"key\":\"deep\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":-1.0036007165908813,\"y\":0,\"z\":1.4897704124450684},\"rotation\":{\"x\":0,\"y\":0,\"z\":0}}},{\"id\":\"67da5fb9-0231-4104-8def-2fd0a7fc3916\",\"type\":\"side\",\"key\":\"rollArm\",\"configuration\":{\"fabric\":{\"hard\":\"420\",\"soft\":\"420\",\"trim\":null}},\"position\":{\"translation\":{\"x\":-1.6337246894836426,\"y\":0,\"z\":1.283305287361145},\"rotation\":{\"x\":0,\"y\":0,\"z\":0}}},{\"id\":\"b2daccaa-b7d7-4162-8c81-b7d109444d8f\",\"type\":\"coaster\",\"key\":\"hickory\",\"position\":{\"translation\":{\"x\":-0.5221635699272156,\"y\":0.002973496913909912,\"z\":-0.31830862164497375},\"rotation\":{\"x\":-3.718647778273515e-21,\"y\":-3.082928596621272e-36,\"z\":-9.500163013218065e-14}}}],\"attachments\":[{\"itemA\":{\"itemId\":\"033e78d9-124b-4218-9271-f62728be2ca4\",\"connectorName\":\"rightFront\"},\"itemB\":{\"itemId\":\"3d84d450-64e4-46f5-bb3b-e6b5bcc3f468\",\"connectorName\":\"rightBack\"}},{\"itemA\":{\"itemId\":\"95a14793-141d-4ca2-b650-84faa6d97d13\",\"connectorName\":\"front\"},\"itemB\":{\"itemId\":\"3d84d450-64e4-46f5-bb3b-e6b5bcc3f468\",\"connectorName\":\"back\"}},{\"itemA\":{\"itemId\":\"dce9a2b1-181c-4926-b411-b27c868916ab\",\"connectorName\":\"left\"},\"itemB\":{\"itemId\":\"95a14793-141d-4ca2-b650-84faa6d97d13\",\"connectorName\":\"right\"}},{\"itemA\":{\"itemId\":\"dce9a2b1-181c-4926-b411-b27c868916ab\",\"connectorName\":\"front\"},\"itemB\":{\"itemId\":\"033e78d9-124b-4218-9271-f62728be2ca4\",\"connectorName\":\"front\"}},{\"itemA\":{\"itemId\":\"5276bed0-7ac9-4cf4-a082-f861f3d5733a\",\"connectorName\":\"front\"},\"itemB\":{\"itemId\":\"3d84d450-64e4-46f5-bb3b-e6b5bcc3f468\",\"connectorName\":\"leftBack\"}},{\"itemA\":{\"itemId\":\"a7c67252-cad2-431d-9b3c-2e58c06173a8\",\"connectorName\":\"front\"},\"itemB\":{\"itemId\":\"033e78d9-124b-4218-9271-f62728be2ca4\",\"connectorName\":\"leftFront\"}},{\"itemA\":{\"itemId\":\"b2daccaa-b7d7-4162-8c81-b7d109444d8f\",\"connectorName\":\"bottom\"},\"itemB\":{\"itemId\":\"5276bed0-7ac9-4cf4-a082-f861f3d5733a\",\"connectorName\":\"topRight\"}}]}"
       }

output:

      response = http.post(
        "https://example.com",
        'Content-Type: multipart/form-data;\r\n boundary="----WebKitFormBoundaryZHjkZUy6WjLNlVxF"\r\nDate: Wed, 30 Sep 2020 20:46:03 +0000\r\nMessage-Id: <1601498763408-1b5d32a5-1dbeea80-1f692433@localhost>\r\nMIME-Version: 1.0\r\n\r\n------WebKitFormBoundaryZHjkZUy6WjLNlVxF\r\nContent-Disposition: form-data; name=orgId\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n50b8fb6d-acbf-4367-a425-3b7528062492\r\n------WebKitFormBoundaryZHjkZUy6WjLNlVxF\r\nContent-Disposition: form-data; name=productId\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\nbfc5b7b0-a966-4af5-9e18-c2407fe60247\r\n------WebKitFormBoundaryZHjkZUy6WjLNlVxF\r\nContent-Disposition: form-data; name=productVersion\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\ntest_version\r\n------WebKitFormBoundaryZHjkZUy6WjLNlVxF\r\nContent-Disposition: form-data; name=variant\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n{"floor":"WhiteOak","items":[{"id":"3d84d450-64e4-46f5-bb3b-e6b5bcc3f468",=\r\n"type":"seat","key":"standard","configuration":{"fabric":{"hard":"420",=\r\n"soft":"420","trim":null}},"position":{"translation":{"x":0,"y":0,"z":0},=\r\n"rotation":{"x":0,"y":0,"z":0}}},{"id":"033e78d9-124b-4218-9271-f62728be2ca=\r\n4","type":"seat","key":"standard","configuration":{"fabric":{"hard":"420",=\r\n"soft":"420","trim":null}},"position":{"translation":{"x":0.=\r\n8864443302154541,"y":-6.49076348224753e-9,"z":-0.00269298255443573},=\r\n"rotation":{"x":180,"y":-1.303316725388272e-12,"z":180}}},=\r\n{"id":"95a14793-141d-4ca2-b650-84faa6d97d13","type":"side","key":"standard"=\r\n,"configuration":{"fabric":{"hard":"420","soft":"420","trim":null}},=\r\n"position":{"translation":{"x":0.00009932114335242659,"y":0.=\r\n0003546370717231184,"z":-0.4465442895889282},"rotation":{"x":-8.=\r\n251924982638163e-30,"y":-0.0000018212330390374201,"z":5.=\r\n192092131145556e-22}}},{"id":"dce9a2b1-181c-4926-b411-b27c868916ab",=\r\n"type":"side","key":"standard","configuration":{"fabric":{"hard":"420",=\r\n"soft":"420","trim":null}},"position":{"translation":{"x":0.=\r\n8870162963867188,"y":0.0003545307263266295,"z":-0.44654420018196106},=\r\n"rotation":{"x":-0.000008651421394828107,"y":-0.0000018212326319264208,=\r\n"z":-0.000008651422209050105}}},{"id":"5276bed0-7ac9-4cf4-a082-f861f3d5733a=\r\n","type":"side","key":"standard","configuration":{"fabric":{"hard":"420",=\r\n"soft":"420","trim":null}},"position":{"translation":{"x":-0.=\r\n5229693651199341,"y":0.0003546573861967772,"z":-0.07576591521501541},=\r\n"rotation":{"x":0,"y":90,"z":-9.500163013218065e-14}}},=\r\n{"id":"a7c67252-cad2-431d-9b3c-2e58c06173a8","type":"side","key":"standard"=\r\n,"configuration":{"fabric":{"hard":"420","soft":"420","trim":null}},=\r\n"position":{"translation":{"x":1.4094135761260986,"y":0.0003546444058883935=\r\n,"z":-0.07541840523481369},"rotation":{"x":0,"y":-90,"z":-8.=\r\n672206977964781e-21}}},{"id":"d6a9062b-69ff-4af5-a54b-4643388e6e53",=\r\n"type":"seat","key":"wedge","configuration":{"fabric":{"hard":"420",=\r\n"soft":"420","trim":null}},"position":{"translation":{"x":-3.=\r\n437708854675293,"y":0,"z":-2.3981525897979736},"rotation":{"x":0,"y":0,=\r\n"z":0}}},{"id":"758490a3-0d69-477d-ab50-eeeee52b24da","type":"side",=\r\n"key":"deep","configuration":{"fabric":{"hard":"420","soft":"420",=\r\n"trim":null}},"position":{"translation":{"x":-1.0036007165908813,"y":0,=\r\n"z":1.4897704124450684},"rotation":{"x":0,"y":0,"z":0}}},=\r\n{"id":"67da5fb9-0231-4104-8def-2fd0a7fc3916","type":"side","key":"rollArm",=\r\n"configuration":{"fabric":{"hard":"420","soft":"420","trim":null}},=\r\n"position":{"translation":{"x":-1.6337246894836426,"y":0,"z":1.=\r\n283305287361145},"rotation":{"x":0,"y":0,"z":0}}},{"id":"b2daccaa-b7d7-4162=\r\n-8c81-b7d109444d8f","type":"coaster","key":"hickory",=\r\n"position":{"translation":{"x":-0.5221635699272156,"y":0.002973496913909912=\r\n,"z":-0.31830862164497375},"rotation":{"x":-3.718647778273515e-21,"y":-3.=\r\n082928596621272e-36,"z":-9.500163013218065e-14}}}],"attachments":[{"itemA":=\r\n{"itemId":"033e78d9-124b-4218-9271-f62728be2ca4","connectorName":"rightFron=\r\nt"},"itemB":{"itemId":"3d84d450-64e4-46f5-bb3b-e6b5bcc3f468",=\r\n"connectorName":"rightBack"}},{"itemA":{"itemId":"95a14793-141d-4ca2-b650-8=\r\n4faa6d97d13","connectorName":"front"},"itemB":{"itemId":"3d84d450-64e4-46f5=\r\n-bb3b-e6b5bcc3f468","connectorName":"back"}},{"itemA":{"itemId":"dce9a2b1-1=\r\n81c-4926-b411-b27c868916ab","connectorName":"left"},=\r\n"itemB":{"itemId":"95a14793-141d-4ca2-b650-84faa6d97d13",=\r\n"connectorName":"right"}},{"itemA":{"itemId":"dce9a2b1-181c-4926-b411-b27c8=\r\n68916ab","connectorName":"front"},"itemB":{"itemId":"033e78d9-124b-4218-927=\r\n1-f62728be2ca4","connectorName":"front"}},{"itemA":{"itemId":"5276bed0-7ac9=\r\n-4cf4-a082-f861f3d5733a","connectorName":"front"},"itemB":{"itemId":"3d84d4=\r\n50-64e4-46f5-bb3b-e6b5bcc3f468","connectorName":"leftBack"}},=\r\n{"itemA":{"itemId":"a7c67252-cad2-431d-9b3c-2e58c06173a8",=\r\n"connectorName":"front"},"itemB":{"itemId":"033e78d9-124b-4218-9271-f62728b=\r\ne2ca4","connectorName":"leftFront"}},{"itemA":{"itemId":"b2daccaa-b7d7-4162=\r\n-8c81-b7d109444d8f","connectorName":"bottom"},"itemB":{"itemId":"5276bed0-7=\r\nac9-4cf4-a082-f861f3d5733a","connectorName":"topRight"}}]}\r\n------WebKitFormBoundaryZHjkZUy6WjLNlVxF--\r\n',
        {

bryanlarsen pushed a commit to bryanlarsen/har-to-k6 that referenced this issue Sep 30, 2020
If postData contains the posted text, preferentially use it instead of re-encoding the formData from postData.params.

Created as a partial fix for grafana#56
@legander
Copy link
Collaborator

legander commented Dec 9, 2020

The library used for constructing formdata payloads (emailjs-mime-builder) requires Content-Transfer-Encoding: quoted-printable for the payload not to be base64 encoded, that is why the header is added. The plan is to replace emailjs-mime-builder in favor of something else.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants