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

Multipart form data - unpredictable results #462

Open
OronDF343 opened this issue Apr 13, 2022 · 1 comment
Open

Multipart form data - unpredictable results #462

OronDF343 opened this issue Apr 13, 2022 · 1 comment
Labels
blocked The issue is blocked by another issue

Comments

@OronDF343
Copy link

OronDF343 commented Apr 13, 2022

  • Application version: 17.0.9
  • Operating System (Platform and Version): Windows 10 21H2 (x64)

Expected Behavior
Multipart form data requests should send all of the selected parts, in the order that they appear.

Actual behavior
In a multipart form data request:

  1. File parts without a name are not sent.
  2. The part name is not applied until I disable and enable the part. This also means that choosing a file and then setting the name will cause it to not be sent until disabled and enabled.
  3. Giving two parts the same name causes one of them to not be sent at all. (This is more an issue of lack of validation)
  4. Renaming a part to the same name as another, then changing the name of the other, causes one of them to not be sent.
  5. The parts are sent in the order that they were enabled, rather than the order in which they appear. It is not possible to control the order in any other way.

All of these issues occur "silently" - no clear warnings or errors.
All issues persist even after closing and reopening ARC and/or choosing a request from the history.

To Reproduce

  1. Add file part, choose a file, do not set the part name. Send the request.
  2. Add file part, choose a file, then set the part name. Send the request.
  3. Add file part, set the part name to "a", choose a file. Add file part, set the part name to "a", choose a different file. Send the request.
  4. Add file part, set the part name to "c", choose a file. Add file part, set the part name to "b", choose a different file. Rename the first part to "b". Rename the second part to "c". Send the request.
  5. Add file part, set the part name to "a", choose a file. Add file part, set the part name to "b", choose a different file. Disable the first part, then enable the first part. Send the request.

Screenshots
Demonstration of scenario 4
image
Originally the second was named "c" and the third was named "b". I renamed the second to "b" and the third to "c".
This is what my server outputs (sanitized):

Content length is 1945781
Section 1 contains headers {"Content-Disposition": ["form-data; name=\"a\"; filename=\"____.xml\""], "Content-Type": ["text/xml"]}
Section 2 contains headers {"Content-Disposition": ["form-data; name=\"c\"; filename=\"____.pdf\""], "Content-Type": ["application/pdf"]}
POST /upload responded 200

If I disable and enable the first part, it is sent last.

@stale
Copy link

stale bot commented May 28, 2022

This issue has been automatically marked as stale because it has not had recent activity and is not currently prioritized. It will be closed in a week if no further activity occurs :)

@stale stale bot added stale and removed stale labels May 28, 2022
@jarrodek jarrodek added the blocked The issue is blocked by another issue label Jun 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked The issue is blocked by another issue
Projects
None yet
Development

No branches or pull requests

2 participants