[GH-ISSUE #310] Multiple Part Forms #311

Open
opened 2026-03-03 19:49:47 +03:00 by kerem · 3 comments
Owner

Originally created by @NghiaTranUIT on GitHub (Sep 25, 2023).
Original GitHub issue: https://github.com/ProxymanApp/proxyman-windows-linux/issues/310

Originally assigned to: @kics223w1 on GitHub.

Description

  • Sample File:

Acceptance Criteria

  • If the request is a multipart request (Check the Content-Type header: If it starts with multipart/form-data)
  • Show the Multipart tab on the Request Tab (Don't implement on the Response Tab)
  • Display Multiple part as a table view

CleanShot 2023-09-25 at 10 06 17@2x

  • Make sure the Body Tab renders correctly
    CleanShot 2023-09-25 at 10 05 29@2x

  • Able to export the FILE to Desktop -> Export with filename + extension -> Able to open it without any error.

Logic

How to test

  • Use Insomnia or Postman to make a Multipart request
  • Use multiple Texts and Files for testing
  • Make sure Proxyman can show the Multipart correctly.
Screenshot 2023-09-25 at 10 04 39
Originally created by @NghiaTranUIT on GitHub (Sep 25, 2023). Original GitHub issue: https://github.com/ProxymanApp/proxyman-windows-linux/issues/310 Originally assigned to: @kics223w1 on GitHub. ## Description - Sample File: ## Acceptance Criteria - If the request is a multipart request (Check the Content-Type header: If it starts with `multipart/form-data`) - Show the Multipart tab on the Request Tab (Don't implement on the Response Tab) - Display Multiple part as a table view ![CleanShot 2023-09-25 at 10 06 17@2x](https://github.com/ProxymanApp/proxyman-windows-linux/assets/5878421/bff49015-6ec5-4d97-bb04-46a4306cabbc) - Make sure the Body Tab renders correctly ![CleanShot 2023-09-25 at 10 05 29@2x](https://github.com/ProxymanApp/proxyman-windows-linux/assets/5878421/ec2753be-07fa-4503-a849-dbea3ec30877) - Able to export the FILE to Desktop -> Export with filename + extension -> Able to open it without any error. ## Logic - Implement the class `MultipartService` to handle the parser - Use this lib: https://www.npmjs.com/package/parse-multipart-data - Write Unit Test to try to parse a given Body (Multipart includes text, and Binary File) -> Get data correctly. ## How to test - Use Insomnia or Postman to make a Multipart request - Use multiple Texts and Files for testing - Make sure Proxyman can show the Multipart correctly. <img width="508" alt="Screenshot 2023-09-25 at 10 04 39" src="https://github.com/ProxymanApp/proxyman-windows-linux/assets/5878421/55f4414b-451f-4454-8bd3-72024cdceadb">
Author
Owner

@NghiaTranUIT commented on GitHub (Oct 26, 2023):

Update requirement

  • Show this view if the total body is over 5Mb. If it's < 5Mb, show the Multipart view as usual
  • Verify that if body > 5 Mb, we don't process the Multipart data, because it can cause performance issues (app hangs, freeze, ...)
  • Use a Save and "Show anyway" button. Remove the "Open With" button.
  • Save: Select a folder -> Proxyman will export ALL parts to a selected folder, each part should have the name by format:
  1. If this part has the filename column -> Use this filename
  2. If this part doesn't have the filename -> Use generic name: Part_${index}
  • Show anyway will show the Multipart view as usual. This selection doesn't persist, it will reset to FALSE if we select new flow.
Screenshot 2023-10-26 at 12 24 42
<!-- gh-comment-id:1780447843 --> @NghiaTranUIT commented on GitHub (Oct 26, 2023): ### Update requirement - Show this view if the total body is over 5Mb. If it's < 5Mb, show the Multipart view as usual - Verify that if body > 5 Mb, we don't process the Multipart data, because it can cause performance issues (app hangs, freeze, ...) - Use a `Save` and "Show anyway" button. Remove the "Open With" button. - `Save`: Select a folder -> Proxyman will export `ALL` parts to a selected folder, each part should have the name by format: 1. If this part has the `filename` column -> Use this filename 2. If this part doesn't have the `filename` -> Use generic name: `Part_${index}` - `Show anyway` will show the Multipart view as usual. This selection doesn't persist, it will reset to FALSE if we select new flow. <img width="637" alt="Screenshot 2023-10-26 at 12 24 42" src="https://github.com/ProxymanApp/proxyman-windows-linux/assets/5878421/e16b51f1-8555-4950-a969-c2229ac7b9ad"> - This new requirement will fix this issue: https://github.com/ProxymanApp/Proxyman/issues/1828
Author
Owner

@NghiaTranUIT commented on GitHub (Oct 26, 2023):

How to test with large data

  1. Make a multipart with Insomnia / Postman with 3 parts: 2 first parts are an Video/Image ~20Mb, and the last part is a JSON string.
  2. Open it on Proxyman -> Verify the "Body over 5Mb ..." is displayed -> Verify we don't proceed the Multipart Data.
  3. Click on the "Save" button -> Select the folder: test in the Desktop. Verify We have 3 files are exported (2 files are image/video, can open it, and the last file is a JSON text)
  4. Click on the Show anyway button -> Show the Multipart Preview as usual
<!-- gh-comment-id:1780451179 --> @NghiaTranUIT commented on GitHub (Oct 26, 2023): ### How to test with large data 1. Make a multipart with Insomnia / Postman with 3 parts: 2 first parts are an Video/Image ~20Mb, and the last part is a JSON string. 2. Open it on Proxyman -> Verify the "Body over 5Mb ..." is displayed ✅ -> Verify we don't proceed the Multipart Data. 3. Click on the "Save" button -> Select the folder: `test` in the `Desktop`. Verify We have 3 files are exported ✅ (2 files are image/video, can open it, and the last file is a JSON text) 4. Click on the `Show anyway` button -> Show the Multipart Preview as usual
Author
Owner

@NghiaTranUIT commented on GitHub (Oct 28, 2023):

New Requirement 2

<!-- gh-comment-id:1783659126 --> @NghiaTranUIT commented on GitHub (Oct 28, 2023): ### New Requirement 2 - Multipart requests should work with cURL. Check out the Slack Post how to implement. - Original ticket: https://github.com/ProxymanApp/Proxyman/issues/1018
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/proxyman-windows-linux#311
No description provided.