mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-07-08 08:30:56 +00:00
[Swift5][URLSession] Fix handling of customHeaders between retries (#7527)
* fix: correct handling of customHeaders Problem: custom headers could be overwritten between request retries following, e.g. a token refresh ( for example, while implementing @4brunu refresh code : https://github.com/OpenAPITools/openapi-generator/issues/5462#issuecomment-592417371 ). A simple reordering of the modifiedRequest headers construction solves the problem. * fix: correct PetStore samples implementation [PR#7527] Co-authored-by: Franz Marini <f.marini@opengate.biz>
This commit is contained in:
parent
8b39335859
commit
785cbbbb63
@ -87,11 +87,11 @@ private var urlSessionStore = SynchronizedDictionary<String, URLSession>()
|
||||
|
||||
originalRequest.httpMethod = method.rawValue
|
||||
|
||||
buildHeaders().forEach { key, value in
|
||||
headers.forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
headers.forEach { key, value in
|
||||
buildHeaders().forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
@ -244,10 +244,13 @@ private var urlSessionStore = SynchronizedDictionary<String, URLSession>()
|
||||
}
|
||||
|
||||
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} func buildHeaders() -> [String: String] {
|
||||
var httpHeaders = {{projectName}}API.customHeaders
|
||||
var httpHeaders: [String : String] = [:]
|
||||
for (key, value) in self.headers {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
for (key, value) in {{projectName}}API.customHeaders {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
return httpHeaders
|
||||
}
|
||||
|
||||
|
@ -87,11 +87,11 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
|
||||
originalRequest.httpMethod = method.rawValue
|
||||
|
||||
buildHeaders().forEach { key, value in
|
||||
headers.forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
headers.forEach { key, value in
|
||||
buildHeaders().forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
@ -244,10 +244,13 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
}
|
||||
|
||||
open func buildHeaders() -> [String: String] {
|
||||
var httpHeaders = PetstoreClientAPI.customHeaders
|
||||
var httpHeaders: [String : String] = [:]
|
||||
for (key, value) in self.headers {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
for (key, value) in PetstoreClientAPI.customHeaders {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
return httpHeaders
|
||||
}
|
||||
|
||||
|
@ -87,11 +87,11 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
|
||||
originalRequest.httpMethod = method.rawValue
|
||||
|
||||
buildHeaders().forEach { key, value in
|
||||
headers.forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
headers.forEach { key, value in
|
||||
buildHeaders().forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
@ -244,10 +244,13 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
}
|
||||
|
||||
open func buildHeaders() -> [String: String] {
|
||||
var httpHeaders = PetstoreClientAPI.customHeaders
|
||||
var httpHeaders: [String : String] = [:]
|
||||
for (key, value) in self.headers {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
for (key, value) in PetstoreClientAPI.customHeaders {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
return httpHeaders
|
||||
}
|
||||
|
||||
|
@ -87,11 +87,11 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
|
||||
originalRequest.httpMethod = method.rawValue
|
||||
|
||||
buildHeaders().forEach { key, value in
|
||||
headers.forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
headers.forEach { key, value in
|
||||
buildHeaders().forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
@ -244,10 +244,13 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
}
|
||||
|
||||
open func buildHeaders() -> [String: String] {
|
||||
var httpHeaders = PetstoreClientAPI.customHeaders
|
||||
var httpHeaders: [String : String] = [:]
|
||||
for (key, value) in self.headers {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
for (key, value) in PetstoreClientAPI.customHeaders {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
return httpHeaders
|
||||
}
|
||||
|
||||
|
@ -87,11 +87,11 @@ internal class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
|
||||
originalRequest.httpMethod = method.rawValue
|
||||
|
||||
buildHeaders().forEach { key, value in
|
||||
headers.forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
headers.forEach { key, value in
|
||||
buildHeaders().forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
@ -244,10 +244,13 @@ internal class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
}
|
||||
|
||||
internal func buildHeaders() -> [String: String] {
|
||||
var httpHeaders = PetstoreClientAPI.customHeaders
|
||||
var httpHeaders: [String : String] = [:]
|
||||
for (key, value) in self.headers {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
for (key, value) in PetstoreClientAPI.customHeaders {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
return httpHeaders
|
||||
}
|
||||
|
||||
|
@ -87,11 +87,11 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
|
||||
originalRequest.httpMethod = method.rawValue
|
||||
|
||||
buildHeaders().forEach { key, value in
|
||||
headers.forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
headers.forEach { key, value in
|
||||
buildHeaders().forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
@ -244,10 +244,13 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
}
|
||||
|
||||
open func buildHeaders() -> [String: String] {
|
||||
var httpHeaders = PetstoreClientAPI.customHeaders
|
||||
var httpHeaders: [String : String] = [:]
|
||||
for (key, value) in self.headers {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
for (key, value) in PetstoreClientAPI.customHeaders {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
return httpHeaders
|
||||
}
|
||||
|
||||
|
@ -87,11 +87,11 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
|
||||
originalRequest.httpMethod = method.rawValue
|
||||
|
||||
buildHeaders().forEach { key, value in
|
||||
headers.forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
headers.forEach { key, value in
|
||||
buildHeaders().forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
@ -244,10 +244,13 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
}
|
||||
|
||||
open func buildHeaders() -> [String: String] {
|
||||
var httpHeaders = PetstoreClientAPI.customHeaders
|
||||
var httpHeaders: [String : String] = [:]
|
||||
for (key, value) in self.headers {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
for (key, value) in PetstoreClientAPI.customHeaders {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
return httpHeaders
|
||||
}
|
||||
|
||||
|
@ -87,11 +87,11 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
|
||||
originalRequest.httpMethod = method.rawValue
|
||||
|
||||
buildHeaders().forEach { key, value in
|
||||
headers.forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
headers.forEach { key, value in
|
||||
buildHeaders().forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
@ -244,10 +244,13 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
}
|
||||
|
||||
open func buildHeaders() -> [String: String] {
|
||||
var httpHeaders = PetstoreClientAPI.customHeaders
|
||||
var httpHeaders: [String : String] = [:]
|
||||
for (key, value) in self.headers {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
for (key, value) in PetstoreClientAPI.customHeaders {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
return httpHeaders
|
||||
}
|
||||
|
||||
|
@ -87,11 +87,11 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
|
||||
originalRequest.httpMethod = method.rawValue
|
||||
|
||||
buildHeaders().forEach { key, value in
|
||||
headers.forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
headers.forEach { key, value in
|
||||
buildHeaders().forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
@ -244,10 +244,13 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
}
|
||||
|
||||
open func buildHeaders() -> [String: String] {
|
||||
var httpHeaders = PetstoreClientAPI.customHeaders
|
||||
var httpHeaders: [String : String] = [:]
|
||||
for (key, value) in self.headers {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
for (key, value) in PetstoreClientAPI.customHeaders {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
return httpHeaders
|
||||
}
|
||||
|
||||
|
@ -87,11 +87,11 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
|
||||
originalRequest.httpMethod = method.rawValue
|
||||
|
||||
buildHeaders().forEach { key, value in
|
||||
headers.forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
headers.forEach { key, value in
|
||||
buildHeaders().forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
@ -244,10 +244,13 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
}
|
||||
|
||||
open func buildHeaders() -> [String: String] {
|
||||
var httpHeaders = PetstoreClientAPI.customHeaders
|
||||
var httpHeaders: [String : String] = [:]
|
||||
for (key, value) in self.headers {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
for (key, value) in PetstoreClientAPI.customHeaders {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
return httpHeaders
|
||||
}
|
||||
|
||||
|
@ -87,11 +87,11 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
|
||||
originalRequest.httpMethod = method.rawValue
|
||||
|
||||
buildHeaders().forEach { key, value in
|
||||
headers.forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
headers.forEach { key, value in
|
||||
buildHeaders().forEach { key, value in
|
||||
originalRequest.setValue(value, forHTTPHeaderField: key)
|
||||
}
|
||||
|
||||
@ -244,10 +244,13 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
|
||||
}
|
||||
|
||||
open func buildHeaders() -> [String: String] {
|
||||
var httpHeaders = PetstoreClientAPI.customHeaders
|
||||
var httpHeaders: [String : String] = [:]
|
||||
for (key, value) in self.headers {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
for (key, value) in PetstoreClientAPI.customHeaders {
|
||||
httpHeaders[key] = value
|
||||
}
|
||||
return httpHeaders
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user