File tree 23 files changed +299
-23
lines changed
modules/openapi-generator/src/main/resources
swift5/libraries/urlsession
swift6/libraries/urlsession
asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs
combineLibrary/PetstoreClient/Classes/OpenAPIs
default/PetstoreClient/Classes/OpenAPIs
objcCompatible/PetstoreClient/Classes/OpenAPIs
oneOf/PetstoreClient/Classes/OpenAPIs
promisekitLibrary/PetstoreClient/Classes/OpenAPIs
resultLibrary/PetstoreClient/Classes/OpenAPIs
rxswiftLibrary/PetstoreClient/Classes/OpenAPIs
urlsessionLibrary/Sources/PetstoreClient
validation/PetstoreClient/Classes/OpenAPIs
asyncAwaitLibrary/Sources/PetstoreClient/Infrastructure
combineDeferredLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure
combineLibrary/Sources/CombineLibrary/Infrastructure
default/Sources/PetstoreClient/Infrastructure
objcCompatible/Sources/PetstoreClient/Infrastructure
oneOf/PetstoreClient/Classes/OpenAPIs/Infrastructure
promisekitLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure
resultLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure
rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/Infrastructure
urlsessionLibrary/Sources/PetstoreClient/Infrastructure
validation/PetstoreClient/Classes/OpenAPIs/Infrastructure
23 files changed +299
-23
lines changed Original file line number Diff line number Diff line change @@ -611,12 +611,24 @@ private class FormURLEncoding: ParameterEncoding {
611
611
var urlRequest = urlRequest
612
612
613
613
var requestBodyComponents = URLComponents()
614
- requestBodyComponents.queryItems = APIHelper.mapValuesToQueryItems(parameters ?? [:])
614
+ let queryItems = APIHelper.mapValuesToQueryItems(parameters ?? [:])
615
+
616
+ /// `httpBody` needs to be percent encoded
617
+ /// -> https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST
618
+ /// " application/x-www-form-urlencoded: [...] Non-alphanumeric characters in both keys and values are percent-encoded"
619
+ let percentEncodedQueryItems = queryItems?.compactMap { queryItem in
620
+ return URLQueryItem(
621
+ name: queryItem.name.addingPercentEncoding(withAllowedCharacters: .alphanumerics) ?? queryItem.name,
622
+ value: queryItem.value?.addingPercentEncoding(withAllowedCharacters: .alphanumerics) ?? queryItem.value)
623
+ }
624
+ requestBodyComponents.queryItems = percentEncodedQueryItems
615
625
616
626
if urlRequest.value(forHTTPHeaderField: "Content-Type") == nil {
617
627
urlRequest.setValue(" application/x-www-form-urlencoded" , forHTTPHeaderField: " Content-Type" )
618
628
}
619
629
630
+ /// We can't use `requestBodyComponents.percentEncodedQuery` since this does NOT percent encode the `+` sign
631
+ /// that is why we do the percent encoding manually for each key/value pair
620
632
urlRequest.httpBody = requestBodyComponents.query?.data(using: .utf8)
621
633
622
634
return urlRequest
Original file line number Diff line number Diff line change @@ -636,12 +636,24 @@ private class FormURLEncoding: ParameterEncoding {
636
636
var urlRequest = urlRequest
637
637
638
638
var requestBodyComponents = URLComponents()
639
- requestBodyComponents.queryItems = APIHelper.mapValuesToQueryItems(parameters ?? [:])
639
+ let queryItems = APIHelper.mapValuesToQueryItems(parameters ?? [:])
640
+
641
+ /// `httpBody` needs to be percent encoded
642
+ /// -> https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST
643
+ /// " application/x-www-form-urlencoded: [...] Non-alphanumeric characters in both keys and values are percent-encoded"
644
+ let percentEncodedQueryItems = queryItems?.compactMap { queryItem in
645
+ return URLQueryItem(
646
+ name: queryItem.name.addingPercentEncoding(withAllowedCharacters: .alphanumerics) ?? queryItem.name,
647
+ value: queryItem.value?.addingPercentEncoding(withAllowedCharacters: .alphanumerics) ?? queryItem.value)
648
+ }
649
+ requestBodyComponents.queryItems = percentEncodedQueryItems
640
650
641
651
if urlRequest.value(forHTTPHeaderField: "Content-Type") == nil {
642
652
urlRequest.setValue(" application/x-www-form-urlencoded" , forHTTPHeaderField: " Content-Type" )
643
653
}
644
654
655
+ /// We can't use `requestBodyComponents.percentEncodedQuery` since this does NOT percent encode the `+` sign
656
+ /// that is why we do the percent encoding manually for each key/value pair
645
657
urlRequest.httpBody = requestBodyComponents.query?.data(using: .utf8)
646
658
647
659
return urlRequest
Original file line number Diff line number Diff line change @@ -611,12 +611,24 @@ private class FormURLEncoding: ParameterEncoding {
611
611
var urlRequest = urlRequest
612
612
613
613
var requestBodyComponents = URLComponents ( )
614
- requestBodyComponents. queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
614
+ let queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
615
+
616
+ /// `httpBody` needs to be percent encoded
617
+ /// -> https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST
618
+ /// "application/x-www-form-urlencoded: [...] Non-alphanumeric characters in both keys and values are percent-encoded"
619
+ let percentEncodedQueryItems = queryItems? . compactMap { queryItem in
620
+ return URLQueryItem (
621
+ name: queryItem. name. addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. name,
622
+ value: queryItem. value? . addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. value)
623
+ }
624
+ requestBodyComponents. queryItems = percentEncodedQueryItems
615
625
616
626
if urlRequest. value ( forHTTPHeaderField: " Content-Type " ) == nil {
617
627
urlRequest. setValue ( " application/x-www-form-urlencoded " , forHTTPHeaderField: " Content-Type " )
618
628
}
619
629
630
+ /// We can't use `requestBodyComponents.percentEncodedQuery` since this does NOT percent encode the `+` sign
631
+ /// that is why we do the percent encoding manually for each key/value pair
620
632
urlRequest. httpBody = requestBodyComponents. query? . data ( using: . utf8)
621
633
622
634
return urlRequest
Original file line number Diff line number Diff line change @@ -611,12 +611,24 @@ private class FormURLEncoding: ParameterEncoding {
611
611
var urlRequest = urlRequest
612
612
613
613
var requestBodyComponents = URLComponents ( )
614
- requestBodyComponents. queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
614
+ let queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
615
+
616
+ /// `httpBody` needs to be percent encoded
617
+ /// -> https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST
618
+ /// "application/x-www-form-urlencoded: [...] Non-alphanumeric characters in both keys and values are percent-encoded"
619
+ let percentEncodedQueryItems = queryItems? . compactMap { queryItem in
620
+ return URLQueryItem (
621
+ name: queryItem. name. addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. name,
622
+ value: queryItem. value? . addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. value)
623
+ }
624
+ requestBodyComponents. queryItems = percentEncodedQueryItems
615
625
616
626
if urlRequest. value ( forHTTPHeaderField: " Content-Type " ) == nil {
617
627
urlRequest. setValue ( " application/x-www-form-urlencoded " , forHTTPHeaderField: " Content-Type " )
618
628
}
619
629
630
+ /// We can't use `requestBodyComponents.percentEncodedQuery` since this does NOT percent encode the `+` sign
631
+ /// that is why we do the percent encoding manually for each key/value pair
620
632
urlRequest. httpBody = requestBodyComponents. query? . data ( using: . utf8)
621
633
622
634
return urlRequest
Original file line number Diff line number Diff line change @@ -611,12 +611,24 @@ private class FormURLEncoding: ParameterEncoding {
611
611
var urlRequest = urlRequest
612
612
613
613
var requestBodyComponents = URLComponents ( )
614
- requestBodyComponents. queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
614
+ let queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
615
+
616
+ /// `httpBody` needs to be percent encoded
617
+ /// -> https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST
618
+ /// "application/x-www-form-urlencoded: [...] Non-alphanumeric characters in both keys and values are percent-encoded"
619
+ let percentEncodedQueryItems = queryItems? . compactMap { queryItem in
620
+ return URLQueryItem (
621
+ name: queryItem. name. addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. name,
622
+ value: queryItem. value? . addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. value)
623
+ }
624
+ requestBodyComponents. queryItems = percentEncodedQueryItems
615
625
616
626
if urlRequest. value ( forHTTPHeaderField: " Content-Type " ) == nil {
617
627
urlRequest. setValue ( " application/x-www-form-urlencoded " , forHTTPHeaderField: " Content-Type " )
618
628
}
619
629
630
+ /// We can't use `requestBodyComponents.percentEncodedQuery` since this does NOT percent encode the `+` sign
631
+ /// that is why we do the percent encoding manually for each key/value pair
620
632
urlRequest. httpBody = requestBodyComponents. query? . data ( using: . utf8)
621
633
622
634
return urlRequest
Original file line number Diff line number Diff line change @@ -611,12 +611,24 @@ private class FormURLEncoding: ParameterEncoding {
611
611
var urlRequest = urlRequest
612
612
613
613
var requestBodyComponents = URLComponents ( )
614
- requestBodyComponents. queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
614
+ let queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
615
+
616
+ /// `httpBody` needs to be percent encoded
617
+ /// -> https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST
618
+ /// "application/x-www-form-urlencoded: [...] Non-alphanumeric characters in both keys and values are percent-encoded"
619
+ let percentEncodedQueryItems = queryItems? . compactMap { queryItem in
620
+ return URLQueryItem (
621
+ name: queryItem. name. addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. name,
622
+ value: queryItem. value? . addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. value)
623
+ }
624
+ requestBodyComponents. queryItems = percentEncodedQueryItems
615
625
616
626
if urlRequest. value ( forHTTPHeaderField: " Content-Type " ) == nil {
617
627
urlRequest. setValue ( " application/x-www-form-urlencoded " , forHTTPHeaderField: " Content-Type " )
618
628
}
619
629
630
+ /// We can't use `requestBodyComponents.percentEncodedQuery` since this does NOT percent encode the `+` sign
631
+ /// that is why we do the percent encoding manually for each key/value pair
620
632
urlRequest. httpBody = requestBodyComponents. query? . data ( using: . utf8)
621
633
622
634
return urlRequest
Original file line number Diff line number Diff line change @@ -611,12 +611,24 @@ private class FormURLEncoding: ParameterEncoding {
611
611
var urlRequest = urlRequest
612
612
613
613
var requestBodyComponents = URLComponents ( )
614
- requestBodyComponents. queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
614
+ let queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
615
+
616
+ /// `httpBody` needs to be percent encoded
617
+ /// -> https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST
618
+ /// "application/x-www-form-urlencoded: [...] Non-alphanumeric characters in both keys and values are percent-encoded"
619
+ let percentEncodedQueryItems = queryItems? . compactMap { queryItem in
620
+ return URLQueryItem (
621
+ name: queryItem. name. addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. name,
622
+ value: queryItem. value? . addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. value)
623
+ }
624
+ requestBodyComponents. queryItems = percentEncodedQueryItems
615
625
616
626
if urlRequest. value ( forHTTPHeaderField: " Content-Type " ) == nil {
617
627
urlRequest. setValue ( " application/x-www-form-urlencoded " , forHTTPHeaderField: " Content-Type " )
618
628
}
619
629
630
+ /// We can't use `requestBodyComponents.percentEncodedQuery` since this does NOT percent encode the `+` sign
631
+ /// that is why we do the percent encoding manually for each key/value pair
620
632
urlRequest. httpBody = requestBodyComponents. query? . data ( using: . utf8)
621
633
622
634
return urlRequest
Original file line number Diff line number Diff line change @@ -611,12 +611,24 @@ private class FormURLEncoding: ParameterEncoding {
611
611
var urlRequest = urlRequest
612
612
613
613
var requestBodyComponents = URLComponents ( )
614
- requestBodyComponents. queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
614
+ let queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
615
+
616
+ /// `httpBody` needs to be percent encoded
617
+ /// -> https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST
618
+ /// "application/x-www-form-urlencoded: [...] Non-alphanumeric characters in both keys and values are percent-encoded"
619
+ let percentEncodedQueryItems = queryItems? . compactMap { queryItem in
620
+ return URLQueryItem (
621
+ name: queryItem. name. addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. name,
622
+ value: queryItem. value? . addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. value)
623
+ }
624
+ requestBodyComponents. queryItems = percentEncodedQueryItems
615
625
616
626
if urlRequest. value ( forHTTPHeaderField: " Content-Type " ) == nil {
617
627
urlRequest. setValue ( " application/x-www-form-urlencoded " , forHTTPHeaderField: " Content-Type " )
618
628
}
619
629
630
+ /// We can't use `requestBodyComponents.percentEncodedQuery` since this does NOT percent encode the `+` sign
631
+ /// that is why we do the percent encoding manually for each key/value pair
620
632
urlRequest. httpBody = requestBodyComponents. query? . data ( using: . utf8)
621
633
622
634
return urlRequest
Original file line number Diff line number Diff line change @@ -611,12 +611,24 @@ private class FormURLEncoding: ParameterEncoding {
611
611
var urlRequest = urlRequest
612
612
613
613
var requestBodyComponents = URLComponents ( )
614
- requestBodyComponents. queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
614
+ let queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
615
+
616
+ /// `httpBody` needs to be percent encoded
617
+ /// -> https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST
618
+ /// "application/x-www-form-urlencoded: [...] Non-alphanumeric characters in both keys and values are percent-encoded"
619
+ let percentEncodedQueryItems = queryItems? . compactMap { queryItem in
620
+ return URLQueryItem (
621
+ name: queryItem. name. addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. name,
622
+ value: queryItem. value? . addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. value)
623
+ }
624
+ requestBodyComponents. queryItems = percentEncodedQueryItems
615
625
616
626
if urlRequest. value ( forHTTPHeaderField: " Content-Type " ) == nil {
617
627
urlRequest. setValue ( " application/x-www-form-urlencoded " , forHTTPHeaderField: " Content-Type " )
618
628
}
619
629
630
+ /// We can't use `requestBodyComponents.percentEncodedQuery` since this does NOT percent encode the `+` sign
631
+ /// that is why we do the percent encoding manually for each key/value pair
620
632
urlRequest. httpBody = requestBodyComponents. query? . data ( using: . utf8)
621
633
622
634
return urlRequest
Original file line number Diff line number Diff line change @@ -611,12 +611,24 @@ private class FormURLEncoding: ParameterEncoding {
611
611
var urlRequest = urlRequest
612
612
613
613
var requestBodyComponents = URLComponents ( )
614
- requestBodyComponents. queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
614
+ let queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
615
+
616
+ /// `httpBody` needs to be percent encoded
617
+ /// -> https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST
618
+ /// "application/x-www-form-urlencoded: [...] Non-alphanumeric characters in both keys and values are percent-encoded"
619
+ let percentEncodedQueryItems = queryItems? . compactMap { queryItem in
620
+ return URLQueryItem (
621
+ name: queryItem. name. addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. name,
622
+ value: queryItem. value? . addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. value)
623
+ }
624
+ requestBodyComponents. queryItems = percentEncodedQueryItems
615
625
616
626
if urlRequest. value ( forHTTPHeaderField: " Content-Type " ) == nil {
617
627
urlRequest. setValue ( " application/x-www-form-urlencoded " , forHTTPHeaderField: " Content-Type " )
618
628
}
619
629
630
+ /// We can't use `requestBodyComponents.percentEncodedQuery` since this does NOT percent encode the `+` sign
631
+ /// that is why we do the percent encoding manually for each key/value pair
620
632
urlRequest. httpBody = requestBodyComponents. query? . data ( using: . utf8)
621
633
622
634
return urlRequest
Original file line number Diff line number Diff line change @@ -611,12 +611,24 @@ private class FormURLEncoding: ParameterEncoding {
611
611
var urlRequest = urlRequest
612
612
613
613
var requestBodyComponents = URLComponents ( )
614
- requestBodyComponents. queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
614
+ let queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
615
+
616
+ /// `httpBody` needs to be percent encoded
617
+ /// -> https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST
618
+ /// "application/x-www-form-urlencoded: [...] Non-alphanumeric characters in both keys and values are percent-encoded"
619
+ let percentEncodedQueryItems = queryItems? . compactMap { queryItem in
620
+ return URLQueryItem (
621
+ name: queryItem. name. addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. name,
622
+ value: queryItem. value? . addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. value)
623
+ }
624
+ requestBodyComponents. queryItems = percentEncodedQueryItems
615
625
616
626
if urlRequest. value ( forHTTPHeaderField: " Content-Type " ) == nil {
617
627
urlRequest. setValue ( " application/x-www-form-urlencoded " , forHTTPHeaderField: " Content-Type " )
618
628
}
619
629
630
+ /// We can't use `requestBodyComponents.percentEncodedQuery` since this does NOT percent encode the `+` sign
631
+ /// that is why we do the percent encoding manually for each key/value pair
620
632
urlRequest. httpBody = requestBodyComponents. query? . data ( using: . utf8)
621
633
622
634
return urlRequest
Original file line number Diff line number Diff line change @@ -611,12 +611,24 @@ private class FormURLEncoding: ParameterEncoding {
611
611
var urlRequest = urlRequest
612
612
613
613
var requestBodyComponents = URLComponents ( )
614
- requestBodyComponents. queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
614
+ let queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
615
+
616
+ /// `httpBody` needs to be percent encoded
617
+ /// -> https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST
618
+ /// "application/x-www-form-urlencoded: [...] Non-alphanumeric characters in both keys and values are percent-encoded"
619
+ let percentEncodedQueryItems = queryItems? . compactMap { queryItem in
620
+ return URLQueryItem (
621
+ name: queryItem. name. addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. name,
622
+ value: queryItem. value? . addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. value)
623
+ }
624
+ requestBodyComponents. queryItems = percentEncodedQueryItems
615
625
616
626
if urlRequest. value ( forHTTPHeaderField: " Content-Type " ) == nil {
617
627
urlRequest. setValue ( " application/x-www-form-urlencoded " , forHTTPHeaderField: " Content-Type " )
618
628
}
619
629
630
+ /// We can't use `requestBodyComponents.percentEncodedQuery` since this does NOT percent encode the `+` sign
631
+ /// that is why we do the percent encoding manually for each key/value pair
620
632
urlRequest. httpBody = requestBodyComponents. query? . data ( using: . utf8)
621
633
622
634
return urlRequest
Original file line number Diff line number Diff line change @@ -636,12 +636,24 @@ private class FormURLEncoding: ParameterEncoding {
636
636
var urlRequest = urlRequest
637
637
638
638
var requestBodyComponents = URLComponents ( )
639
- requestBodyComponents. queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
639
+ let queryItems = APIHelper . mapValuesToQueryItems ( parameters ?? [ : ] )
640
+
641
+ /// `httpBody` needs to be percent encoded
642
+ /// -> https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST
643
+ /// "application/x-www-form-urlencoded: [...] Non-alphanumeric characters in both keys and values are percent-encoded"
644
+ let percentEncodedQueryItems = queryItems? . compactMap { queryItem in
645
+ return URLQueryItem (
646
+ name: queryItem. name. addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. name,
647
+ value: queryItem. value? . addingPercentEncoding ( withAllowedCharacters: . alphanumerics) ?? queryItem. value)
648
+ }
649
+ requestBodyComponents. queryItems = percentEncodedQueryItems
640
650
641
651
if urlRequest. value ( forHTTPHeaderField: " Content-Type " ) == nil {
642
652
urlRequest. setValue ( " application/x-www-form-urlencoded " , forHTTPHeaderField: " Content-Type " )
643
653
}
644
654
655
+ /// We can't use `requestBodyComponents.percentEncodedQuery` since this does NOT percent encode the `+` sign
656
+ /// that is why we do the percent encoding manually for each key/value pair
645
657
urlRequest. httpBody = requestBodyComponents. query? . data ( using: . utf8)
646
658
647
659
return urlRequest
You can’t perform that action at this time.
0 commit comments