mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-08-01 01:38:35 +02:00
Content-Type multipart/form-data is not seen as byte[] anymore #162
Closed
opened 2025-12-29 14:23:58 +01:00 by adam
·
18 comments
No Branch/Tag Specified
master
1341-mapping-json
stef-aspire-tests-updates
bug/973-TinyMapper
bug/1149-AppendGuidToSavedMappingFile
feature/1150-DockerImageVersion
61
stef-1108
stef-1097
stef-1083-MessageOptions_Type_Conflict
stef-1062-logger
stef-IgnoreOpenApiErrors
stef-928-TypeLoadException-FluentAssertions-net472
nunit
stef-849
stef-847-regex-questionmark
http_verb
WireMockServerContext
webapp
ai
CommandLineArgumentsParser
2.13.0
2.12.0
2.11.0
2.10.0
2.9.0
2.8.0
2.7.0
2.6.0
2.5.0
2.4.0
2.3.0
2.2.0
2.1.0
2.0.0
1.25.0
1.24.0
1.23.0
1.22.0
1.21.0
1.20.0
1.19.0
1.18.0
1.17.0
1.16.0
1.15.0
1.14.0
1.13.0
1.12.0
1.11.2
1.11.0
1.10.1
1.10.0
1.9.1
1.9.0
1.8.18
1.8.17
1.8.16
1.8.15
1.8.14
1.8.13
1.8.12
1.8.11
1.8.10
1.8.9
1.8.8
1.8.7
1.8.6
1.8.5
1.8.3
1.8.2
1.8.1
1.8.0
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.12
1.6.11
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.62
1.5.61
1.5.60
1.5.59
1.5.58
1.5.57
1.5.56
1.5.55
1.5.54
1.5.53
1.5.52
1.5.51
1.5.50
1.5.49
1.5.48
1.5.47
1.5.46
1.5.45
1.5.44
1.5.43
1.5.42
1.5.41
1.5.40
1.5.39
1.5.38
1.5.37
1.5.36
1.5.35
1.5.34
1.5.33
1.5.32
1.5.31
1.5.30
1.5.29
1.5.28
1.5.27
1.5.26
1.5.25
1.5.24
1.5.23
1.5.22
1.5.21
1.5.20
1.5.19
1.5.18
1.5.17
1.5.16
1.5.15
1.5.14
1.5.13
1.5.12
1.5.11
1.5.10
1.5.9
1.5.8
1.5.7
1.5.6
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.43
1.4.42
1.4.41
1.4.40
1.4.39
1.4.38
1.4.37
1.4.36
1.4.35
1.4.34
1.4.33
1.4.32
1.4.31
1.4.30
1.4.29
1.4.28
1.4.27
1.4.26
1.4.25
1.4.24
1.4.23
1.4.22
1.4.21
1.4.20
1.4.19
1.4.18
1.4.17
1.4.16
1.4.15
1.4.14
1.4.13
1.4.12
1.4.11
1.4.10
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.10
1.3.9
1.3.8
1.3.6
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.18
1.2.17
1.2.16
1.2.15
1.2.14
1.2.13
1.2.12
1.2.11.0
1.2.10
1.2.9.0
1.2.8.0
1.2.7.0
1.2.6.0
1.2.5.0
1.2.4.0
1.2.3.0
1.2.2.0
1.2.1.0
1.2.0.0
1.1.10
1.1.9.0
1.1.8.0
1.1.7.0
1.1.6.0
1.1.5.0
1.1.3.0
1.1.2.0
1.1.1.0
1.1.0.0
1.0.43.0
1.0.42.0
1.0.41.0
1.0.40.0
1.0.39.0
1.0.38.0
1.0.37.0
1.0.36.0
1.0.35.0
1.0.34.0
1.0.33.0
1.0.32.0
1.0.31.0
1.0.29.0
1.0.28.0
1.0.25.0
1.0.24.0
1.0.23.0
1.0.22.0
1.0.21.0
1.0.20.0
1.0.19.0
1.0.18.0
1.0.17.0
1.0.16.0
1.0.15.0
1.0.14.0
1.0.13.0
1.0.12.0
1.0.11.0
1.0.10.0
1.0.9.0
1.0.8.0
1.0.7.0
1.0.6.1
1.0.6
1.0.5
1.0.4.21
1.0.4.20
1.0.4.19
1.0.4.18
1.0.4.17
1.0.4.16
1.0.4.15
1.0.4.14
1.0.4.13
1.0.4.12
1.0.4.11
1.0.4.10
1.0.4.9
1.0.4.8
1.0.4.7
1.0.4.6
1.0.4.5
1.0.4.4
1.0.4.3
1.0.4.2
1.0.4.1
1.0.4.0
1.0.3.20
1.0.3.19
1.0.3.18
1.0.3.17
1.0.3.16
1.0.3.15
1.0.3.14
1.0.3.13
1.0.3.12
1.0.3.11
1.0.3.10
1.0.3.9
1.0.3.8
1.0.3.7
1.0.3.6
1.0.3.5
1.0.3.4
1.0.3.3
1.0.3.2
1.0.3.1
1.0.3.0
1.0.2.13
1.0.2.12
1.0.2.11
1.0.2.10
1.0.2.9
1.0.2.8
1.0.2.7
1.0.2.6
1.0.2.5
1.0.2.4
1.0.2.1
1.0.2.0
1.0.1.5
1.0.1.3
1.0.1.2
1.0.1.1
1.0.0.0
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/WireMock.Net-wiremock#162
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @bgiot on GitHub (Jan 10, 2019).
Since version 1.0.4.18, if the request body is of content-type "multipart/form-data", it is seen as string body instead of byte body. Bug seems to be in the BodyParser class where the content-type is not check anymore before trying reading the content as string. Before version 1.0.4.18, a check was done to see if the content is of "text" type before trying to convert body to string. Our MultipartMatcher implementation cannot work anymore because of this.
@StefH commented on GitHub (Jan 10, 2019):
Which version are you using now ? 1.0.6 ?
@bgiot commented on GitHub (Jan 10, 2019):
It only works with version 1.0.4.17. I tested all the other versions from 1.0.4.18 upto 1.0.6 and I have the issue
@bgiot commented on GitHub (Jan 10, 2019):
In version 1.0.4.17, you can see in the BodyParser class that a test is done on the ContentType header before trying to read the body as string (from line 50):
@bgiot commented on GitHub (Jan 10, 2019):
from version 1.0.4.18, the code doesn't check the content type anymore before trying reading body as string:
@StefH commented on GitHub (Jan 10, 2019):
Yes I see.
Currently changing the code to add MultiPart.
@StefH commented on GitHub (Jan 10, 2019):
See PR
https://github.com/WireMock-Net/WireMock.Net/pull/249
and comment if this is ok.
@bgiot commented on GitHub (Jan 10, 2019):
I don't understand what you are going to do by saying "add multipart". Putting back the tests? In fact multipart MUST be seen as binary and NOT string... Otherwise any byte "zero" in the body content will stop the reading of the body. The body must be read as byte[] and not string....
@bgiot commented on GitHub (Jan 10, 2019):
I checked your fix. Indeed it's a shortcut. And it should work. But putting back the tests as before is not more backward compatible ?
@bgiot commented on GitHub (Jan 10, 2019):
I'm ready to validate this new version when available. I'll keep you posted...
@StefH commented on GitHub (Jan 10, 2019):
"add multipart" --> I mean just fixing this code to support your test scenario.
@StefH commented on GitHub (Jan 10, 2019):
@bgiot commented on GitHub (Jan 10, 2019):
The content-type is the key element to decide how to read the body. Trying reading the body as string without checking that the content type is of "text" type can be an issue sometime... no ? I think the way it was done in version 1.4.0.17 is safe. Any special case that needed to remove those checks ? Also in the content-type info you can have the encoding to properly read the body...
@StefH commented on GitHub (Jan 10, 2019):
By that time I changed the code for parsing from the body.
And with that
try to read as string, it's easy for users to use the body as string, even if the content-type may be missing or invalid.For your specific case, it looks like a work-around yes.
I'll just wait for more cases to pop-up and maybe then I need to do a (breaking) change.
@bgiot commented on GitHub (Jan 10, 2019):
In fact the property DetectedBodyTypeFromContentType is not used afterward (but only is your fix right now for the multipart). I think a test must be added based on that value just before the "try" statement for string/json.
@bgiot commented on GitHub (Jan 10, 2019):
notion of "breaking change" ;-) In fact since 1.0.4.18 it was a breaking change ;-) Let's wait indeed for more usecases to see if more changes are needed. Any info about release time for this version 1.0.6.1?
Thanks a lot for your speedy reaction!
@bgiot commented on GitHub (Jan 10, 2019):
really appreciate your reactivity! Thanks a lot again!
@StefH commented on GitHub (Jan 10, 2019):
In a few minutes, the 1.0.6.1`NuGet will be visible.
@bgiot commented on GitHub (Jan 10, 2019):
I did some tests and all seems to work fine! Good job! Thanks a lot!